婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 借助HTML5 Canvas API制作一個簡單的猜字游戲

借助HTML5 Canvas API制作一個簡單的猜字游戲

熱門標簽:電話機器人如何 聯通400電話申請 杭州營銷電銷機器人供應商 電視購物電銷外呼系統 貸款電銷人工和機器人哪個好 西寧智能外呼系統加盟 百應電銷機器人產業 飛亞外呼系統 高德地圖標注賓館位置

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

HTML代碼

XML/HTML Code復制內容到剪貼板
  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復制內容到剪貼板
  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 = "請輸入正確的字符";   
  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.         //猜測次數   
  101.         context.fillStyle = "#109900";   
  102.         context.font = "16px _sans";   
  103.         context.fillText("猜測次數: "+guesses, 215, 60);   
  104.            
  105.         //大還是小   
  106.         context.fillStyle = "#000000";   
  107.         context.font = "16px _sans";   
  108.         context.fillText("大還是小: "+higherOrLower, 150, 135);   
  109.            
  110.         //已經猜測的字符   
  111.         context.fillStyle = "#FF0000";   
  112.         context.font = "16px _sans";   
  113.         context.fillText("已經猜測的字符: "+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. }  

從游戲名稱可以看出,該游戲是猜字游戲。每局系統都會自動生成一個字母,玩家會按鍵盤來猜測該字母是哪一個。

例如生成的是s,玩家按了h,則游戲就會提示《小了》,因為英文字母當中h的索引比s的索引更靠前。

案例當中涉及的變量。

guesses:猜測次數
message:文字提示,指導用戶如何玩該游戲
letters:文字數組,存放我們要猜測的文字的集合。這個例子用的是a到z
today:今天的日期
letterToGuess:要猜測的文字
higherOrLower:是《大了》還是《小了》
letterGuessed:已經猜測過得文字
gameOver:游戲是否結束,是布爾變量,開始的時候是false,猜對后設為true

變量的聲明

JavaScript Code復制內容到剪貼板
  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復制內容到剪貼板
  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.     }  

通過使用Math的random()函數和floor()函數,根據文字的數組生成要猜測的文字。

并且當用戶按鍵盤的時候監聽《keyup》事件,根據傳遞過來的event,生成按下的鍵值。

因猜測游戲對大小寫不敏感,為防止用戶按大寫字母,我們需要把值轉換成小寫形式。

猜測次數+1

猜測出來的文字添加到已經猜測的文字數組當中

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

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

通過indexOf函數 我們可以判斷要猜測的文字和我們輸入的文字在字符集上面的索引值。

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

最終用戶猜對了要猜測的文字 我們會在中央用大號字體顯示《你猜對了》

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

 

至此這個功能差不多完成了吧,我們還有一個小功能,那就是通過按下按鈕的方式可以把屏幕結果抓去出來。

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

標簽:煙臺 安慶 晉中 內蒙古 玉溪 邯鄲 牡丹江 撫州

巨人網絡通訊聲明:本文標題《借助HTML5 Canvas API制作一個簡單的猜字游戲》,本文關鍵詞  借助,HTML5,Canvas,API,制作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《借助HTML5 Canvas API制作一個簡單的猜字游戲》相關的同類信息!
  • 本頁收集關于借助HTML5 Canvas API制作一個簡單的猜字游戲的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩一区二区三区视频在线观看| 国产精品国产三级国产aⅴ原创| 国产欧美日韩精品在线| 国产精品综合在线视频| 国产午夜精品久久久久久免费视| 成人一区在线观看| 国产精品高潮呻吟| 欧美在线一区二区| 美国十次了思思久久精品导航| 精品第一国产综合精品aⅴ| 国产精品小仙女| 亚洲精品第1页| 欧美精品九九99久久| 国产一区二区三区免费| 中文字幕在线观看一区| 欧美日韩小视频| 国产一区二区三区四区五区入口| 亚洲三级在线免费观看| 91精品国产91综合久久蜜臀| 国产69精品一区二区亚洲孕妇| 一区二区三区在线观看动漫| 日韩视频永久免费| 99久久精品国产精品久久| 日韩黄色免费网站| 中文字幕日本乱码精品影院| 7777精品伊人久久久大香线蕉完整版| 精品一区二区在线播放| 中文字幕一区二区三区在线播放 | 亚洲综合久久av| 精品久久久久久久久久久久久久久 | 成人av在线一区二区三区| 亚洲无人区一区| 久久精品一区二区三区不卡| 欧美在线观看视频在线| 风间由美性色一区二区三区| 视频一区二区三区中文字幕| 中文字幕视频一区| 久久亚洲欧美国产精品乐播 | 日本电影欧美片| 国产呦萝稀缺另类资源| 亚洲综合偷拍欧美一区色| 国产色91在线| 欧美一区二区三级| 欧美这里有精品| 国产麻豆精品在线观看| 免费观看在线综合| 亚洲成人黄色小说| 亚洲欧美一区二区三区久本道91| 日韩精品一区二区三区老鸭窝| 色呦呦国产精品| 国产不卡免费视频| 久久99精品一区二区三区三区| 亚洲午夜电影在线| 亚洲男女一区二区三区| 中文字幕精品—区二区四季| 26uuu久久综合| 精品伦理精品一区| 精品少妇一区二区三区日产乱码| 欧美日韩日日夜夜| 91麻豆精东视频| 不卡欧美aaaaa| 国产成人av在线影院| 精东粉嫩av免费一区二区三区| 日韩精品国产欧美| 亚洲国产中文字幕| 亚洲一区国产视频| 亚洲电影欧美电影有声小说| 一区二区三区在线高清| 亚洲一卡二卡三卡四卡无卡久久| 专区另类欧美日韩| 亚洲色大成网站www久久九九| 18成人在线观看| 亚洲欧美视频在线观看| 日韩理论片在线| 日韩码欧中文字| 一区二区欧美视频| 亚洲成人中文在线| 视频一区视频二区在线观看| 一区二区在线观看不卡| 亚洲国产成人精品视频| 亚洲一卡二卡三卡四卡五卡| 香蕉久久一区二区不卡无毒影院 | 久久久久久久久岛国免费| 337p日本欧洲亚洲大胆色噜噜| 欧美tickle裸体挠脚心vk| 精品国产成人在线影院 | 欧美精品一区二区高清在线观看| 91精品国产全国免费观看| 欧美精品在线一区二区三区| 欧美一级在线视频| 精品奇米国产一区二区三区| 久久久国际精品| 亚洲欧洲制服丝袜| 午夜伦理一区二区| 美女久久久精品| 高清国产一区二区| 91搞黄在线观看| 欧美一级日韩免费不卡| 国产亚洲欧美日韩在线一区| 一区二区中文视频| 亚洲一区二区在线免费看| 六月丁香综合在线视频| 成人精品gif动图一区| 欧洲另类一二三四区| 精品美女在线播放| 亚洲色图一区二区| 日本v片在线高清不卡在线观看| 国产制服丝袜一区| 色国产精品一区在线观看| 欧美一区二区三区在线观看| 国产精品你懂的在线欣赏| 午夜影院在线观看欧美| 国产激情一区二区三区四区 | 91丨国产丨九色丨pron| 欧美精品1区2区3区| 久久精品欧美日韩| 亚洲福利视频导航| 国产成人精品免费| 欧美夫妻性生活| 国产欧美日本一区二区三区| 亚洲一区二区在线免费观看视频 | 亚洲免费观看高清完整 | 日本不卡一二三| 国产成人福利片| 欧美一卡二卡在线观看| 亚洲欧洲成人自拍| 美国毛片一区二区| 春色校园综合激情亚洲| 欧美日韩视频在线第一区| 中文字幕一区免费在线观看| 韩国三级在线一区| 在线中文字幕一区二区| 久久久久久久精| 日韩精品电影一区亚洲| 成人免费视频视频在线观看免费| 欧美视频一区在线| 亚洲精品一区在线观看| 性欧美疯狂xxxxbbbb| 成人污视频在线观看| 欧美一区二区三区在线视频| 亚洲影院理伦片| 成人av资源下载| 91精品久久久久久久久99蜜臂| 国产精品视频一二三| 激情综合色丁香一区二区| 欧美日韩高清一区二区三区| 亚洲欧洲美洲综合色网| 成人av影院在线| 欧美精品一区二区三区在线| 污片在线观看一区二区| 在线观看免费成人| 中文字幕综合网| jlzzjlzz亚洲女人18| 久久久久久久久久久99999| 精品一区二区三区免费观看| 91精品国产一区二区三区蜜臀| 亚洲综合一二三区| 在线视频一区二区三| 亚洲女人的天堂| 91免费观看在线| 国产精品不卡视频| 成人av资源网站| 国产精品妹子av| 丁香网亚洲国际| 国产亚洲成年网址在线观看| 国产乱码精品一区二区三| 2023国产精品自拍| 国产精品自在欧美一区| 久久一留热品黄| 国产精品白丝jk白祙喷水网站| 欧美精品一区二区三区很污很色的| 久久成人免费网| 精品av久久707| 高潮精品一区videoshd| 欧美激情一区二区三区四区| 国产成+人+日韩+欧美+亚洲| 欧美国产精品专区| 粗大黑人巨茎大战欧美成人| 亚洲欧美在线aaa| 91免费视频大全| 亚洲国产精品自拍| 欧美三区在线观看| 亚洲福利电影网| 欧美成人精品二区三区99精品| 精品一区二区免费| 国产午夜精品久久久久久免费视| a亚洲天堂av| 亚洲午夜国产一区99re久久| 欧美精品久久一区| 国产在线国偷精品免费看| 亚洲国产精品高清| 91蝌蚪国产九色| 亚洲视频免费观看| 欧美日韩视频不卡| 国产美女视频91| 亚洲精品欧美综合四区| 欧美日本在线看| 久久精品久久久精品美女| 2024国产精品| 欧日韩精品视频|