canvas鍵盤打字練習功能
分享一段程式碼例項,它實現了鍵盤打字練習的功能。
比較簡單的一個功能,程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> html, body { height: 100%; } body { background-color: #333; } div { color: white; } #content { position: absolute; width: 500px; } .game { position: absolute; left: 0; top: 0; } #start { background-color: white; border: 0; font-size: 25px; width: 80px; height: 30px; cursor: pointer; } </style> </head> <body> <div id="content"> <div class="game"> <input type="button" name="start" id="start" value="開始" /> <span>分數:</span><span id="score"></span> <span>倒數計時:</span><span id="times">30</span> </div> </div> <canvas id="myCanvas"></canvas> <script type="text/javascript"> var start = document.getElementById("start"); var times = document.getElementById("times"); var score = document.getElementById("score"); var canvas = document.getElementById("myCanvas"); var cxt = canvas.getContext("2d"); canvas.width = document.documentElement.clientWidth; canvas.height = document.documentElement.clientHeight; var letStr = "abcdefghijklmnopqrstuvwsyz"; //隨機數 function rand(min, max) { return parseInt(Math.random() * (max - min + 1) + min); } //建立字母物件 function Letter() { this.x = rand(0, canvas.width - 25); this.y = 0; this.speedY = rand(1, 6); this.val = letStr[rand(0, 25)]; this.color = ["magenta", "golden", "yellow"] } //畫的方法 Letter.prototype.draw = function() { cxt.font = "Bold 25px verdana"; cxt.fillStyle = this.color[rand(0, 2)]; cxt.shadowColor = "darkblue"; cxt.shadowBlur = 15; cxt.fillText(this.val, this.x, this.y); } //移動的方法 Letter.prototype.move = function() { this.y += this.speedY; } //刪除超除螢幕的物件 Letter.prototype.clear = function() { if (this.y >= canvas.height) { return true; } else { return false; } } //盛放物件的陣列 var letterArr = []; //控制物件產生速度的數字 var index = 0; var timer = null; var game = null; start.onclick = function() { clearInterval(timer); clearInterval(game); game = setInterval(function() { cxt.clearRect(0, 0, canvas.width, canvas.height); //先建立物件 if (index % 20 == 0) { index++; var letter = new Letter(); letterArr.push(letter); } for (var i = 0; i < letterArr.length; i++) { letterArr[i].move(); if (letterArr[i].clear()) { letterArr.splice(i, 1); i--; } else { letterArr[i].draw(); } } index++; }, 30); //倒數計時 timer = setInterval(function() { times.innerHTML = times.innerHTML - 0 - 1; if (times.innerHTML == 0) { clearInterval(1); clearInterval(2); alert("分數是:" + score.innerHTML); location.reload(); } }, 1000); document.onkeypress = function(ev) { var evObj = ev || window.event; //將對應的ASC轉成字元 var str = String.fromCharCode(evObj.keyCode); for (var i = 0; i < letterArr.length; i++) { if (letterArr[i].val == str) { letterArr.splice(i, 1); i--; score.innerHTML = score.innerHTML - 0 + 1; break; } } } } </script> </body> </html>
相關文章
- 演算法學習之路|舊鍵盤打字演算法
- Type Fu for Mac(打字練習)Mac
- js字串以鍵盤打字方式輸出:JS字串
- 【練習】canvas——flappyBirdCanvasAPP
- PAT-B 1033 舊鍵盤打字【字串】字串
- Nanoxia Ncore Retro機械鍵盤:這復古鍵盤打起字來像打字機NaN
- PAT1033 舊鍵盤打字(java實現)Java
- KeyKey Typing for Mac(打字練習軟體)Mac
- Typing Instructor Gold for Mac打字練習軟體StructGoMac
- 五筆打字練習軟體 (11千字)
- 鍵盤裝置執行正常卻不能打字如何解決 鍵盤全沒反應了按什麼鍵
- 機械鍵盤什麼軸好 機械鍵盤追求手感打字玩遊戲該選什麼軸遊戲
- tickeys 1.0.0 中文版 (鍵盤打字音效模擬工具)
- Type Fu for Mac(打字練習工具) v4.8.0啟用版Mac
- 專業打字練習軟體:KeyBlaze for mac 啟用版Mac
- 美國某公司推出穿戴式智慧指套 可當鍵盤隔空打字
- 鍵盤各個鍵的功能圖解 電腦鍵盤全圖詳細圖解
- Tap Strap可穿戴藍芽鍵盤:戴上它動動手指就能打字了藍芽
- mac中使用妙控鍵盤頂部的功能鍵Mac
- 5款值得買的機械鍵盤推薦 打字遊戲體驗都不錯遊戲
- 一文帶你入門客製化鍵盤,打造專屬打字利器
- Master of Typing 3 for Mac(打字練習軟體)15.13.24啟用版ASTMac
- 電腦鍵盤各個按鍵功能和作用介紹 電腦鍵盤各個按鍵功能高畫質圖片圖解圖解
- 膝上型電腦鍵盤的功能介紹 筆記本鍵盤功能介紹圖大全圖解筆記圖解
- win10鍵盤沒壞打不出字怎麼處理_win10鍵盤沒壞無法打字解決步驟Win10
- 全鍵盤Vimium快捷鍵學習記錄
- win10玩遊戲一直打字怎麼處理_win10遊戲鍵盤一按就打字解決方法Win10遊戲
- win10系統下鍵盤打字反應慢遲鈍的解決方法Win10
- Type Fu for Mac(打字練習軟體) v4.8.0中文版Mac
- 複製Monkeytype:如何建立一個高效的打字練習應用
- 筆記本win10系統打字時鍵盤輸入錯亂如何解決筆記Win10
- 打字太痛苦?手遊玩家們是時候升級一款專業鍵盤了
- Win10系統下鍵盤打字總是出現重複字母如何解決Win10
- 優秀的打字練習軟體:Master of Typing 3中文啟用AST
- 五筆:鍵名字練習.txt,250字
- Html網頁實現鍵盤Enter響應功能HTML網頁
- 機械鍵盤黑軸紅軸青軸茶軸區別 機械鍵盤黑軸紅軸青軸茶軸玩遊戲打字哪個好遊戲
- 表單事件與鍵盤事件學習事件