成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 借助HTML5 Canvas API制作一個(gè)簡(jiǎn)單的猜字游戲

借助HTML5 Canvas API制作一個(gè)簡(jiǎn)單的猜字游戲

熱門(mén)標(biāo)簽:電話機(jī)器人如何 聯(lián)通400電話申請(qǐng) 杭州營(yíng)銷(xiāo)電銷(xiāo)機(jī)器人供應(yīng)商 電視購(gòu)物電銷(xiāo)外呼系統(tǒng) 貸款電銷(xiāo)人工和機(jī)器人哪個(gè)好 西寧智能外呼系統(tǒng)加盟 百應(yīng)電銷(xiāo)機(jī)器人產(chǎn)業(yè) 飛亞外呼系統(tǒng) 高德地圖標(biāo)注賓館位置

二話不說(shuō),先上效果圖以及源代碼~

HTML代碼

XML/HTML Code復(fù)制內(nèi)容到剪貼板
  1. <!doctype html>  
  2. <html lang="en">  
  3.     <head>  
  4.         <meta charset="utf-8" />  
  5.         <script type="text/javascript" src="chp1_guess_the_letter.js"></script>  
  6.         <script type="text/javascript" src="modernizr.custom.99886.js"></script>  
  7.     </head>  
  8.     <body>  
  9.         <canvas id="canvas_guess_the_letter" width="500" height="300">  
  10.             你的瀏覽器不支持HTML5 Canvas   
  11.         </canvas>  
  12.         <form>  
  13.             <input type="button" id="createImageData" value="Export Canvas Image" />;   
  14.         </form>  
  15.     </body>  
  16. </html>  

JS代碼

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. /**  
  2.  * @author Rafael  
  3.  */  
  4. window.addEventListener("load", eventWindowLoaded, false);   
  5.   
  6. var Debugger = function() {   
  7.        
  8. };   
  9. Debugger.log = function(message) {   
  10.     try {   
  11.         console.log(message);   
  12.     } catch(exception) {   
  13.         return;   
  14.     }   
  15. }   
  16.   
  17. function eventWindowLoaded() {   
  18.     canvasApp();   
  19. }   
  20.   
  21. function canvasSupport() {   
  22.     return Modernizr.canvas;   
  23. }   
  24.   
  25. function canvasApp() {   
  26.     var guesses = 0;   
  27.     var message = "Guess The Letter From a(lower) to z(higher)";   
  28.     var letters = ["a","b","c","d","e","f","g","h","i","j","k","l",   
  29.                     "m","n","o","p","q","r","s","t","u","v","w","x","y","z"];   
  30.     var today = new Date();   
  31.     var letterToGuess = "";   
  32.     var higherOrLower = "";   
  33.     var letterGuessed = [];   
  34.     var gameOver = false;   
  35.        
  36.     if(!canvasSupport()) {   
  37.         return;   
  38.     }   
  39.        
  40.     var theCanvas = document.getElementById("canvas_guess_the_letter");   
  41.     var context = theCanvas.getContext("2d");   
  42.        
  43.     initGame();   
  44.        
  45.     function initGame() {   
  46.         var letterIndex = Math.floor(Math.random() * letters.length);   
  47.         letterToGuess = letters[letterIndex];   
  48.         guesses = 0;   
  49.         lettersGuessed = [];   
  50.         gameOver = false;   
  51.         window.addEventListener("keyup", eventKeyPressed, true);   
  52.         var formElement = document.getElementById("createImageData");   
  53.         formElement.addEventListener('click', createImageDataPressed, false);   
  54.         drawScreen();   
  55.     }   
  56.        
  57.     function eventKeyPressed(e) {   
  58.         if(!gameOver) {   
  59.             var letterPressed = String.fromCharCode(e.keyCode);   
  60.             letterPressed = letterPressed.toLowerCase();   
  61.             guesses++;   
  62.             letterGuessed.push(letterPressed);   
  63.             if(letterPressed == letterToGuess) {   
  64.                 gameOver = true;   
  65.             } else {   
  66.                 letterIndex = letters.indexOf(letterToGuess);   
  67.                 guessIndex = letters.indexOf(letterPressed);   
  68.                 if(guessIndex < 0) {   
  69.                     higherOrLower = "請(qǐng)輸入正確的字符";   
  70.                 } else if(guessIndex < letterIndex) {   
  71.                     higherOrLower = "小了";   
  72.                 } else {   
  73.                     higherOrLower = "大了";   
  74.                 }   
  75.             }   
  76.             drawScreen();   
  77.         }   
  78.     }   
  79.        
  80.     function drawScreen() {   
  81.         //背景   
  82.         context.fillStyle = "#ffffaa";   
  83.         context.fillRect(0, 0, 500, 300);   
  84.            
  85.         //箱子   
  86.         context.strokeStyle = "#000000";   
  87.         context.strokeRect(5, 5, 490, 290);   
  88.         context.textBaseLine = "top";   
  89.            
  90.         //日期   
  91.         context.fillStyle = "#000000";   
  92.         context.font = "10px _sans";   
  93.         context.fillText(today, 150, 20);   
  94.            
  95.         //消息   
  96.         context.fillStyle = "#FF0000";   
  97.         context.font = "14px _sans";   
  98.         context.fillText(message, 125, 40);   
  99.            
  100.         //猜測(cè)次數(shù)   
  101.         context.fillStyle = "#109900";   
  102.         context.font = "16px _sans";   
  103.         context.fillText("猜測(cè)次數(shù): "+guesses, 215, 60);   
  104.            
  105.         //大還是小   
  106.         context.fillStyle = "#000000";   
  107.         context.font = "16px _sans";   
  108.         context.fillText("大還是小: "+higherOrLower, 150, 135);   
  109.            
  110.         //已經(jīng)猜測(cè)的字符   
  111.         context.fillStyle = "#FF0000";   
  112.         context.font = "16px _sans";   
  113.         context.fillText("已經(jīng)猜測(cè)的字符: "+letterGuessed.toString(), 10, 260);   
  114.            
  115.         if(gameOver) {   
  116.             context.fillStyle = "#FF0000";   
  117.             context.font = "40px _sans";   
  118.             context.fillText("你猜中了", 150, 180);   
  119.         }   
  120.     }   
  121.        
  122.     function createImageDataPressed(e) {   
  123.         window.open(theCanvas.toDataURL(), "canvasImage","left=0, top=0, width="+theCanvas.width+", height="+theCanvas.height+", toolbar=0, resizable=0");   
  124.     }   
  125. }  

從游戲名稱(chēng)可以看出,該游戲是猜字游戲。每局系統(tǒng)都會(huì)自動(dòng)生成一個(gè)字母,玩家會(huì)按鍵盤(pán)來(lái)猜測(cè)該字母是哪一個(gè)。

例如生成的是s,玩家按了h,則游戲就會(huì)提示《小了》,因?yàn)橛⑽淖帜府?dāng)中h的索引比s的索引更靠前。

案例當(dāng)中涉及的變量。

guesses:猜測(cè)次數(shù)
message:文字提示,指導(dǎo)用戶(hù)如何玩該游戲
letters:文字?jǐn)?shù)組,存放我們要猜測(cè)的文字的集合。這個(gè)例子用的是a到z
today:今天的日期
letterToGuess:要猜測(cè)的文字
higherOrLower:是《大了》還是《小了》
letterGuessed:已經(jīng)猜測(cè)過(guò)得文字
gameOver:游戲是否結(jié)束,是布爾變量,開(kāi)始的時(shí)候是false,猜對(duì)后設(shè)為true

變量的聲明

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. var guesses = 0;   
  2. var message = "Guess The Letter From a(lower) to z(higher)";   
  3. var letters = ["a","b","c","d","e","f","g","h","i","j","k","l",   
  4.                 "m","n","o","p","q","r","s","t","u","v","w","x","y","z"];   
  5. var today = new Date();   
  6. var letterToGuess = "";   
  7. var higherOrLower = "";   
  8. var letterGuessed = [];   
  9. var gameOver = false;  


初始化游戲

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. function initGame() {   
  2.         var letterIndex = Math.floor(Math.random() * letters.length);   
  3.         letterToGuess = letters[letterIndex];   
  4.         guesses = 0;   
  5.         lettersGuessed = [];   
  6.         gameOver = false;   
  7.         window.addEventListener("keyup", eventKeyPressed, true);   
  8.         var formElement = document.getElementById("createImageData");   
  9.         formElement.addEventListener('click', createImageDataPressed, false);   
  10.         drawScreen();   
  11.     }  

通過(guò)使用Math的random()函數(shù)和floor()函數(shù),根據(jù)文字的數(shù)組生成要猜測(cè)的文字。

并且當(dāng)用戶(hù)按鍵盤(pán)的時(shí)候監(jiān)聽(tīng)《keyup》事件,根據(jù)傳遞過(guò)來(lái)的event,生成按下的鍵值。

因猜測(cè)游戲?qū)Υ笮?xiě)不敏感,為防止用戶(hù)按大寫(xiě)字母,我們需要把值轉(zhuǎn)換成小寫(xiě)形式。

猜測(cè)次數(shù)+1

猜測(cè)出來(lái)的文字添加到已經(jīng)猜測(cè)的文字?jǐn)?shù)組當(dāng)中

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. var letterPressed = String.fromCharCode(e.keyCode);   
  2. letterPressed = letterPressed.toLowerCase();   
  3. guesses++;   
  4. letterGuessed.push(letterPressed);   

剩下的就只有判斷 大和小了。

通過(guò)indexOf函數(shù) 我們可以判斷要猜測(cè)的文字和我們輸入的文字在字符集上面的索引值。

如果我們輸入的更靠前則提示《小了》反之《大了》

最終用戶(hù)猜對(duì)了要猜測(cè)的文字 我們會(huì)在中央用大號(hào)字體顯示《你猜對(duì)了》

JavaScript Code復(fù)制內(nèi)容到剪貼板
  1. letterIndex = letters.indexOf(letterToGuess);   
  2. guessIndex = letters.indexOf(letterPressed);   
  3. if(guessIndex < 0) {   
  4.     higherOrLower = "請(qǐng)輸入正確的字符";   
  5. else if(guessIndex < letterIndex) {   
  6.     higherOrLower = "小了";   
  7. else {   
  8.     higherOrLower = "大了";   
  9. }  

 

至此這個(gè)功能差不多完成了吧,我們還有一個(gè)小功能,那就是通過(guò)按下按鈕的方式可以把屏幕結(jié)果抓去出來(lái)。

用的函數(shù)為toDataUrl(),有興趣的朋友研究一下。

標(biāo)簽:煙臺(tái) 安慶 晉中 內(nèi)蒙古 玉溪 邯鄲 牡丹江 撫州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《借助HTML5 Canvas API制作一個(gè)簡(jiǎn)單的猜字游戲》,本文關(guān)鍵詞  借助,HTML5,Canvas,API,制作,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《借助HTML5 Canvas API制作一個(gè)簡(jiǎn)單的猜字游戲》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于借助HTML5 Canvas API制作一個(gè)簡(jiǎn)單的猜字游戲的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    精品一区三区| 在线亚洲欧美专区二区| 性生活免费网站| 丝袜a∨在线一区二区三区不卡| 永久免费不卡在线观看黄网站| 精品免费视频一卡2卡三卡4卡不卡| 中文字幕第一页久久| 国产成人精品综合| 婷婷久久五月天| 日本三级视频网站| 欧美精品97| av不卡在线观看| 亚洲va男人天堂| 水蜜桃av无码| 亚洲视频 中文字幕| 日日夜夜一区| 伦av综合一区| 亚洲色偷偷综合亚洲av伊人| 成人黄色在线观看视频| 欧美乱妇15p| 国产精品久久AV无码| 性生交生活影碟片| 最新国产精品久久久| 在线理论视频| 91精品国产色综合久久不卡98| 亚洲一区影音先锋| baoyu777.永久免费视频| 亚洲国产岛国毛片在线| 亚洲欧美精品aaaaaa片| 岳的好大精品一区二区三区| 黄色一级片免费的| 国产精品色在线观看| 天堂在线观看视频| 成人免费视频观看视频| 国产一区二区调教| 日韩不卡手机在线v区| 中文字幕欧美人妻精品一区蜜臀| 国产xxx在线观看| 亚洲码在线观看| 欧美日韩影视| 中文字幕在线观看播放| 免费不卡av在线| 欧美性感美女h网站在线观看免费| japanese中文字幕| 伊人成年综合网| 26uuu国产在线精品一区二区| 亚欧洲精品视频在线观看| 一个人免费视频www在线观看| 懂色av中文一区二区三区| 国产aⅴ爽av久久久久成人| 日韩三区在线| 欧美黑人极品猛少妇色xxxxx| 精品乱码一区内射人妻无码| www.麻豆| 91福利在线导航| 91欧美精品午夜性色福利在线| 欧美黄色一级生活片| 久久伊人资源站| www.久久国产| 午夜精品成人av| 欧美激情一区二区三区成人| 亚洲黄在线观看| aⅴ色国产欧美| 国产精品视频导航| 成人欧美一区二区三区在线湿哒哒| 9.1片黄在线观看| 青青青草网站免费视频在线观看| 国产专区精品| 成人久久久久久| free性欧美69巨大| 欧美午夜不卡| 成人午夜电影在线播放| 在线观看国产原创自拍视频| 视频直播国产精品| 99蜜桃在线观看免费视频网站| 精品一区二区三区在线播放| 日日夜夜天堂| 国产精品福利小视频| 欧美成人3dxxxx| 超碰在线观看99| 高清一区二区三区视频| 夫妻av一区二区| 3d动漫一区二区三区在线观看| 亚洲视频重口味| 国产精品麻豆一区二区| 亚洲视频www| kk眼镜猥琐国模调教系列一区二区| 一女二男3p波多野结衣| 8x拔播拔播x8国产精品| 欧美天堂一区二区| 久操视频在线播放| 精品一区在线观看视频| 91精品一区二区三区综合| 欧美精品人人做人人爱视频| 婷婷国产成人久久精品激情| 中文字字幕在线中文乱码| 成人久久在线| 五月天av网站| 国产伦精品一区二区三区照片91| 亚洲乱码一区| 在线看成人av| 日韩欧美国产一区二区| 日本韩国一区二区| 在线中文字幕av| 欧洲精品亚洲精品| 亚洲色图官网| 91精品久久久久久9s密挑| 国产精品免费视频久久久| 国产精品麻豆视频| 少妇高潮久久久久久潘金莲| 日本精品久久电影| 亚洲裸色大胆大尺寸艺术写真| 欧美日韩在线视频一区二区三区| 人妻 日韩精品 中文字幕| 精品人伦一区二区色婷婷| 精品国偷自产国产一区| 97人妻精品一区二区免费| 免费一二一二在线视频| 欧美一区二区三区在线播放| 欧美黑人xxxx猛牲大交| 成人精品网站在线观看| 中文字幕精品在线| 经典一区二区| xxxxx性欧美特大| 伊人久久大香线蕉av一区二区| abab456成人免费网址| 欧美videofree性高清杂交| 亚洲一区中文字幕| 亚洲一二三四久久| 亚洲国产欧美一区二区三区同亚洲| 国产极品人妖在线观看| 国产精品视频一区二区免费不卡| 日本三区在线观看| 岛国精品在线播放| 99国产精品免费视频| 欧美日韩激情一区二区| 欧美在线亚洲综合一区| 国产日本精品视频| 天天色天天干天天色| а_天堂中文在线| 精品国产91久久久久久浪潮蜜月| 欧美日韩精品免费观看视完整| 亚洲精品乱码久久久久久蜜桃欧美| 久久国产剧场电影| xxav视频| 一区二区三区四区高清精品免费观看| 91av视频在线| 欧美日韩的一区二区| 五月网丁香网| 18一19gay欧美视频网站| 欧美日韩亚洲国产另类| 在线视频中文字幕第一页| 上原亚衣加勒比在线播放| 老司机免费视频久久| 亚洲国产精品日韩| 亚洲精品1区| 国产精品实拍| 狠狠色丁香久久综合频道| 国产精品久久久一区二区| 97电影在线观看| 国产精品麻豆一区二区| 欧美精品在线免费| 亚洲欧美国产精品久久久久久久| 久久久99精品| 国产精品久久久久久久久久免费看| 成人h视频在线观看播放| 国产免费一区二区三区最新6| 奇米777国产一区国产二区| 成人福利视频在| 亚洲福利国产| 国产一区二区三区小说| yiren22综合网成人| 精品在线免费观看视频| 亚洲欧洲一区二区三区| 成人免费观看在线网址| 国模无码视频一区二区三区| 日韩中文第一页| 欧美精品一区三区在线观看| 亚洲色图图片| 自拍视频网站| 国产美女主播一区| 搞黄网站免费观看| 香蕉视频在线播放| 精品中文字幕一区二区三区| 伊人久久成人| 日韩一区日韩二区| 在线三级av| 99久久精品国产网站| 久久久久久久影视| 国产一区二区三区在线看麻豆| 肉丝一区二区| 国产一区二区三区四区五区加勒比| 欧美在线免费一级片| 亚洲国产三级网| 欧洲一级视频| 日韩av无码中文字幕| 国产乱妇乱子| 中文字幕色av一区二区三区| 全部av―极品视觉盛宴亚洲| 国产综合自拍| 51xtv成人影院| 精品日韩中文字幕| 不卡日韩av| 日本成人福利| 亚洲男同gay网站| 一区二区三区资源| 久久国产精品99久久人人澡| 亚洲欧美日韩系列| 欧美 日韩 国产 高清| xxx亚洲日本| 亚洲综合欧美激情| xx欧美xxx| 日本一区二区视频| 久久国产成人精品| 无码任你躁久久久久久老妇| 国产综合久久久| 久久久久亚洲av成人网人人软件| 黑人另类av| 欧美一级电影久久| 最新国产精品久久精品| www.xx日本| 国产精品99久久久久| 色哟哟视频在线| 99精品国产99久久久久久白柏| 亚洲国产精品成人无久久精品| 日本调教视频在线观看| 精品999成人| 欧美黑人猛交的在线视频| 免费在线观看麻豆视频| 先锋影音亚洲资源| 精品极品在线| 亚洲在线一区二区三区| 老司机色在线视频| 亚洲黄色三级| 亚洲黄色小说在线观看| 97品白浆高清久久久久久| 国产亚洲一级高清| 欧洲乱码伦视频免费| 国产成人自拍一区| 亚洲欧洲日产国码二区| 国产精品综合久久久久| 国产精品久久久久久久第一福利| 欧美三级午夜理伦三级中文幕| 亚洲美女在线一区| 成人免费网站黄| 日韩欧美久久一区| 欧美精品一区二区性色a+v| 亚洲色图欧美日韩| 欧美久久久久久久| www.精品国产| 美女网站色精品尤物极品姐弟| www.色多多| 国产精品色一区二区三区| 不卡电影免费在线播放一区| 国产精品无码自拍| 高清免费电影在线观看| 国产精品一区二区三区免费观看| 中国国产一级毛片| www.嫩草免费在线观看| 9l国产精品久久久久麻豆| 欧美大胆性生话| 2025韩国理伦片在线观看| 91久久综合亚洲鲁鲁五月天| 成人精品视频一区二区三区尤物| 国产精品久久777777换脸| 欧美黄色一级网站| 中文字幕久精品免费视频| 91精品国产乱码久久蜜臀| 超碰激情在线| 成人av免费电影网站| 久久精品第九区免费观看| 97精品人妻一区二区三区| 日韩在线观看免费高清完整版| 国产精品免费观看高清| 精品福利网址导航| 草民电影神马电影一区二区| 天天舔天天干天天操| 97超碰人人澡| 可以直接看的av网址站| 丰满大乳奶做爰ⅹxx视频| 国产成人黄色片| 无罩大乳的熟妇正在播放| 成人免费网址| 另类的小说在线视频另类成人小视频在线| 日韩一区二区久久久| 有码在线播放| 亚洲天堂精品一区| 青青草社区视频| 亚洲国产美女精品久久久久∴| 91看片官网| 欧美日韩在线播放视频| 日本亚洲色大成网站www久久| 九色蝌蚪性视频| 久久久999| 一区二区三区美女视频| 国产极品美女在线| 亚洲色图欧美另类| 国产精品mm| 日本www在线视频| 91成人在线观看喷潮教学| 又大又长粗又爽又黄少妇视频| 成人久久久久久久| 亚洲综合中文字幕在线观看| 一区二区欧美日韩视频| 欧美在线观看视频网站| 久草在线资源福利站| 懂色av一区二区三区蜜臀| 国产主播福利| 九七影院97影院理论片久久| 亚亚洲欧洲精品| 中文字幕制服丝袜一区二区三区| a级国产乱理论片在线观看99| 亚洲激情黄色| 97精品久久人人爽人人爽| 欧美俄罗斯性视频| 日韩脚交footjobhd| 久久精品99无色码中文字幕| 一级特级黄色片| 欧美少妇一区二区| 伊人亚洲视频| 久久久久青草大香线综合精品| 亚洲最大在线| av福利网址| 日日夜夜精品视频免费| 曰本人一级毛片免费完整视频| 在线观看污网站| 亚洲电影第1页| 国产精品自产拍在线观看中文|