javascript 打字游戏实现代码
2010-04-02 00:00
851 查看
效果如图所示:
下面是核心代码
效果演示
GAME = {
//随机产生字母
randLetter: function() {
var arrLetter = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X",
"Y", "Z");
//随机产生字母
var index = Math.floor(Math.random() * 26);
return arrLetter[index];
},
//随机字母颜色
randLetterColor: function() {
var arrLetterColor = new Array("Red", "Green", "#555", "Blue", "Black");
var index = Math.floor(Math.random() * 4);
return arrLetterColor[index];
},
//随机字母大小
randLetterSize: function() {
var arrLetterSize = new Array("12px", "16px", "20px", "24px", "28px", "32px", "36px", "40px");
var index = Math.floor(Math.random() * 7);
return arrLetterSize[index];
},
//创建DIV
divCreate: function(width, height, left, top, value) {
this.width = width;
this.height = height;
this.div = document.createElement("div");
this.div.style.width = width;
this.div.style.height = height;
this.div.style.left = left;
this.div.style.top = top;
this.div.innerText = value;
this.div.style.color = this.randLetterColor();
this.div.style.fontSize = this.randLetterSize();
this.div.style.lineHeight = this.div.style.height;
this.div.style.textAlign = "center";
this.div.style.fontWeight = "bold";
//this.div.style.border = "solid red 1px";
this.div.style.position = "relative";
document.getElementById("map").appendChild(this.div);
return this.div;
},
//DIV下落
divDown: function() {
var divTop = parseInt(this.div.style.top.slice(0, -2)); //字母方块的Top
var mapHeight = parseInt(document.getElementById("map").style.height.slice(0, -2));
//就消失
if (divTop < mapHeight - parseInt(this.height) + 20) {
this.div.style.top = divTop + 30;
//获取按键的值
document.onkeydown = function() {
//按键的字母是不是 等于 div的值
if (String.fromCharCode(event.keyCode) == GAME.div.innerText) {
document.getElementById("TextRecord").value = "正确";
GAME.div.style.display = "none";
clearInterval(GAME.timeCreateID);
GAME.divCreate(100, 100, Math.floor(Math.random() * 300), -30, GAME.randLetter());
}
else {
document.getElementById("TextRecord").value = "错误";
}
}
}
//到达底线就消失,之后再创建DIV
else {
this.div.style.display = "none";
GAME.divCreate(100, 100, Math.floor(Math.random() * 300), -30, this.randLetter());
}
},
timeCreateID: null,
timeDownID: null,
START: function() {
this.divCreate(100, 100, 200, -40, this.randLetter());
this.timeDownID = setInterval("GAME.divDown();", 1000);
document.getElementById('ButtonStart').disabled = 'disabled';
document.getElementById('ButtonStop').disabled = '';
},
STOP: function() {
if (this.timeDownID != null) {
clearInterval(this.timeDownID);
this.div.style.display = "none";
}
document.getElementById('ButtonStart').disabled = '';
document.getElementById('ButtonStop').disabled = 'disabled';
}
}
Snmon转正题目 - -||| ,题目需求还要复杂100倍。。。
暂时只实现了随机生成字母,已监听键盘,还未计算得分。
得分:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
下面是核心代码
GAME = { //随机产生字母 randLetter: function() { var arrLetter = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"); //随机产生字母 var index = Math.floor(Math.random() * 26); return arrLetter[index]; }, //随机字母颜色 randLetterColor: function() { var arrLetterColor = new Array("Red", "Green", "#555", "Blue", "Black"); var index = Math.floor(Math.random() * 4); return arrLetterColor[index]; }, //随机字母大小 randLetterSize: function() { var arrLetterSize = new Array("12px", "16px", "20px", "24px", "28px", "32px", "36px", "40px"); var index = Math.floor(Math.random() * 7); return arrLetterSize[index]; }, //创建DIV divCreate: function(width, height, left, top, value) { this.width = width; this.height = height; this.div = document.createElement("div"); this.div.style.width = width; this.div.style.height = height; this.div.style.left = left; this.div.style.top = top; this.div.innerText = value; this.div.style.color = this.randLetterColor(); this.div.style.fontSize = this.randLetterSize(); this.div.style.lineHeight = this.div.style.height; this.div.style.textAlign = "center"; this.div.style.fontWeight = "bold"; //this.div.style.border = "solid red 1px"; this.div.style.position = "relative"; document.getElementById("map").appendChild(this.div); return this.div; }, //DIV下落 divDown: function() { var divTop = parseInt(this.div.style.top.slice(0, -2)); //字母方块的Top var mapHeight = parseInt(document.getElementById("map").style.height.slice(0, -2)); //就消失 if (divTop < mapHeight - parseInt(this.height) + 20) { this.div.style.top = divTop + 30; //获取按键的值 document.onkeydown = function() { //按键的字母是不是 等于 div的值 if (String.fromCharCode(event.keyCode) == GAME.div.innerText) { document.getElementById("TextRecord").value = "正确"; GAME.div.style.display = "none"; clearInterval(GAME.timeCreateID); GAME.divCreate(100, 100, Math.floor(Math.random() * 300), -30, GAME.randLetter()); } else { document.getElementById("TextRecord").value = "错误"; } } } //到达底线就消失,之后再创建DIV else { this.div.style.display = "none"; GAME.divCreate(100, 100, Math.floor(Math.random() * 300), -30, this.randLetter()); } }, timeCreateID: null, timeDownID: null, START: function() { this.divCreate(100, 100, 200, -40, this.randLetter()); this.timeDownID = setInterval("GAME.divDown();", 1000); document.getElementById('ButtonStart').disabled = 'disabled'; document.getElementById('ButtonStop').disabled = ''; }, STOP: function() { if (this.timeDownID != null) { clearInterval(this.timeDownID); this.div.style.display = "none"; } document.getElementById('ButtonStart').disabled = ''; document.getElementById('ButtonStop').disabled = 'disabled'; } }
效果演示
GAME = {
//随机产生字母
randLetter: function() {
var arrLetter = new Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W",
"X",
"Y", "Z");
//随机产生字母
var index = Math.floor(Math.random() * 26);
return arrLetter[index];
},
//随机字母颜色
randLetterColor: function() {
var arrLetterColor = new Array("Red", "Green", "#555", "Blue", "Black");
var index = Math.floor(Math.random() * 4);
return arrLetterColor[index];
},
//随机字母大小
randLetterSize: function() {
var arrLetterSize = new Array("12px", "16px", "20px", "24px", "28px", "32px", "36px", "40px");
var index = Math.floor(Math.random() * 7);
return arrLetterSize[index];
},
//创建DIV
divCreate: function(width, height, left, top, value) {
this.width = width;
this.height = height;
this.div = document.createElement("div");
this.div.style.width = width;
this.div.style.height = height;
this.div.style.left = left;
this.div.style.top = top;
this.div.innerText = value;
this.div.style.color = this.randLetterColor();
this.div.style.fontSize = this.randLetterSize();
this.div.style.lineHeight = this.div.style.height;
this.div.style.textAlign = "center";
this.div.style.fontWeight = "bold";
//this.div.style.border = "solid red 1px";
this.div.style.position = "relative";
document.getElementById("map").appendChild(this.div);
return this.div;
},
//DIV下落
divDown: function() {
var divTop = parseInt(this.div.style.top.slice(0, -2)); //字母方块的Top
var mapHeight = parseInt(document.getElementById("map").style.height.slice(0, -2));
//就消失
if (divTop < mapHeight - parseInt(this.height) + 20) {
this.div.style.top = divTop + 30;
//获取按键的值
document.onkeydown = function() {
//按键的字母是不是 等于 div的值
if (String.fromCharCode(event.keyCode) == GAME.div.innerText) {
document.getElementById("TextRecord").value = "正确";
GAME.div.style.display = "none";
clearInterval(GAME.timeCreateID);
GAME.divCreate(100, 100, Math.floor(Math.random() * 300), -30, GAME.randLetter());
}
else {
document.getElementById("TextRecord").value = "错误";
}
}
}
//到达底线就消失,之后再创建DIV
else {
this.div.style.display = "none";
GAME.divCreate(100, 100, Math.floor(Math.random() * 300), -30, this.randLetter());
}
},
timeCreateID: null,
timeDownID: null,
START: function() {
this.divCreate(100, 100, 200, -40, this.randLetter());
this.timeDownID = setInterval("GAME.divDown();", 1000);
document.getElementById('ButtonStart').disabled = 'disabled';
document.getElementById('ButtonStop').disabled = '';
},
STOP: function() {
if (this.timeDownID != null) {
clearInterval(this.timeDownID);
this.div.style.display = "none";
}
document.getElementById('ButtonStart').disabled = '';
document.getElementById('ButtonStop').disabled = 'disabled';
}
}
Snmon转正题目 - -||| ,题目需求还要复杂100倍。。。
暂时只实现了随机生成字母,已监听键盘,还未计算得分。
得分:
[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
相关文章推荐
- javascript 打字游戏实现代码
- javascript实现的简单打字游戏
- 原生javascript开发打字游戏---代码重构版本
- javascript高仿热血传奇游戏实现代码
- 几段javascript实现一个打字游戏效果
- 65行 JavaScript 代码实现 Flappy Bird 游戏
- JavaScript图片放大技术(放大镜)实现代码分享
- javascript 随机展示头像实现代码
- javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
- Javascript Jquery 遍历Json的实现代码
- javascript 超简单代码实现图片轮播功能
- javascript实现的在当前窗口中漂浮框的代码
- 分享:使用 TypeScript 编写的 JavaScript 游戏代码
- javascript实现上传图片并预览的效果实现代码
- 俄罗斯方块游戏JavaScript代码
- JavaScript实现一个简易的计算器实例代码
- javascript实现自动跳转到首页的代码实例
- JavaScript游戏之是男人就下100层代码打包
- javascript+css代码实现折叠效果
- JavaScript与Div对层定位和移动获得坐标的实现代码