javascript实现简单打字游戏


Posted in Javascript onOctober 29, 2019

本文实例为大家分享了javascript打字游戏的具体代码,供大家参考,具体内容如下

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>传智打字游戏</title>
<style type="text/css">
 .label{
 position:absolute;left: 0px;
 }
</style>
<script type="text/javascript" src="game.js"></script>
</head>
<body>
 <div id="msg"></div>
 <input id="startBtn" type="button" value="开始游戏" οnclick="startGame(this)"/>
 <input type="button" value="停止游戏" οnclick="stopGame()"/>
</body>
</html>
var CODE = "QWERTYUIOPASDFGHJKLZXCVBNM";
var codeArray = [];
var number = 0; 
 
//创建随机字母 
function createCode(){
 //0-25
 var index = parseInt(Math.random()*26);
 return CODE.charAt(index);
};
 
//创建显示label方法
function createLabel(code){
 /**
 * <label class="label">
 A
 </label>
 */
 var label = document.createElement("label");
 label.className = "label";
 label.style.top = "50px";
 label.innerHTML = code;
 label.code = code;
 
 var html = document.documentElement;
 
 //所有label标签的x坐标
 var labelX = parseInt(Math.random()*html.clientWidth);
 if(labelX>100){
 labelX-=20;
 }
 
 label.style.left = labelX+"px";
 
 return label;
}
 
window.onload = function(){
 document.getElementById("startBtn").disabled = false;
 
 
 //注册键盘事件
 document.documentElement.οnkeydοwn=function(event){
 var keyCode = event.keyCode; //获取按下的吗
 var code = String.fromCharCode(keyCode);//A-Z
 for ( var i = 0; i < codeArray.length; i++) {
 //label标签
 var label = codeArray[i];
 if(label.code==code){
  clearInterval(label.interval_id);
  label.parentNode.removeChild(label);
  codeArray.splice(i,1);
  number+=10;
  
  document.getElementById("msg").innerHTML = number+"分";
 break;
 }
 }
 };
};
 
//让label标签慢慢的从上向下移动
function runLabelTop(label){
 
 //获取页面的高度
 var height = Math.max(document.documentElement.clientHeight,document.documentElement.scrollHeight);
 
 label.interval_id = setInterval(function(){
 //50px
 var top = parseInt(label.style.top);
 top+=1;
 //判断label是否已经超过页面的高度
 if(top>height-30){
 removeLabel(label,false);
 }else{
 label.style.top = top+"px";
 }
 },10);
}
 
//flag = false用户没有按下该字母
function removeLabel(label,flag){
 clearInterval(label.interval_id);
 label.parentNode.removeChild(label);
 codeArray.shift();
 number-=20;
 document.getElementById("msg").innerHTML = number+"分";
}
 
var game_id = null;
 
//开始游戏
function startGame(startButton){
 
 startButton.disabled = true;
 
 game_id = setInterval(function(){
 //创建要显示的字符
 var code =createCode();
 //创建一个label显示字符
 var label = createLabel(code);
 
 //让label标签慢慢向下移动,修改标签的style.top属性
 runLabelTop(label);
 
 //把label标签节加入到页面中
 document.body.appendChild(label);
 codeArray.push(label);
 },1000);
}
 
//停止游戏
function stopGame(){
 clearInterval(game_id);
 for ( var i = 0; i < codeArray.length; i++) {
 clearInterval(codeArray[i].interval_id);
 codeArray[i].parentNode.removeChild(codeArray[i]);
 }
 codeArray = [];
 document.getElementById("startBtn").disabled = false;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js multiple全选与取消全选实现代码
Dec 04 Javascript
Jquery实现视频播放页面的关灯开灯效果
May 27 Javascript
js如何判断用户是否是用微信浏览器
Jun 05 Javascript
JavaScript中的全局对象介绍
Jan 01 Javascript
js面向对象之静态方法和静态属性实例分析
Jan 10 Javascript
Angularjs整合微信UI(weui)
Mar 15 Javascript
微信小程序 sha1 实现密码加密实例详解
Jul 06 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
Mar 14 Javascript
Express本地测试HTTPS的示例代码
Jun 06 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
Oct 28 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
Dec 06 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 Javascript
简单使用webpack打包文件的实现
Oct 29 #Javascript
vue 解决异步数据更新问题
Oct 29 #Javascript
VUE实现强制渲染,强制更新
Oct 29 #Javascript
js实现贪吃蛇小游戏
Oct 29 #Javascript
浅谈vue异步数据影响页面渲染
Oct 29 #Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 #Javascript
vue实现设置载入动画和初始化页面动画效果
Oct 28 #Javascript
You might like
PHP 一个比较完善的简单文件上传
2010/03/25 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
创建公共调用 jQuery Ajax 带返回值
2012/08/01 Javascript
JQuery实现表格中相同单元格合并示例代码
2013/06/26 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
Bootstrap表单Form全面解析
2016/06/13 Javascript
jQuery基于xml格式数据实现模糊查询及分页功能的方法
2016/12/25 Javascript
JSON与js对象序列化实例详解
2017/03/16 Javascript
使用JavaScript进行表单校验功能
2017/08/01 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
ndm:NPM的桌面GUI应用程序
2018/10/15 Javascript
浅谈JavaScript 代码简洁之道
2019/01/09 Javascript
[52:26]完美世界DOTA2联赛决赛 FTD vs Phoenix 第一场 11.08
2020/11/11 DOTA
Windows中使用wxPython和py2exe开发Python的GUI程序的实例教程
2016/07/11 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
Python爬虫实战:分析《战狼2》豆瓣影评
2018/03/26 Python
python实现超简单的视频对象提取功能
2018/06/04 Python
Python使用jsonpath-rw模块处理Json对象操作示例
2018/07/31 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
Django JWT Token RestfulAPI用户认证详解
2019/01/23 Python
Python正则表达式学习小例子
2020/03/03 Python
Python之Django自动实现html代码(下拉框,数据选择)
2020/03/13 Python
Jupyter notebook运行Spark+Scala教程
2020/04/10 Python
css3类选择器之结合元素选择器和多类选择器用法
2017/03/09 HTML / CSS
不可轻视HTML5!App三年内将被html5顶替彻底消失
2015/11/18 HTML / CSS
工艺工程师工作职责
2013/11/23 职场文书
开学寄语大全
2014/04/08 职场文书
教师专业自荐信
2014/05/31 职场文书
走群众路线剖析材料
2014/10/09 职场文书
毕业证明模板
2015/06/19 职场文书
《山中访友》教学反思
2016/02/24 职场文书
亲情作文之母爱
2019/09/25 职场文书
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS