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 相关文章推荐
javascript parseInt 大改造
Sep 27 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
Bootstrap入门书籍之(五)导航条、分页导航
Feb 17 Javascript
功能强大的jquery.validate表单验证插件
Nov 07 Javascript
微信小程序 出现错误:{&quot;baseresponse&quot;:{&quot;errcode&quot;:-80002,&quot;errmsg&quot;:&quot;&quot;}}解决办法
Feb 23 Javascript
jquery 一键复制到剪切板的实例
Sep 20 jQuery
EasyUI Tree树组件无限循环的解决方法
Sep 27 Javascript
Vue.js递归组件构建树形菜单
Dec 24 Javascript
基于Node.js实现压缩和解压缩的方法
Feb 13 Javascript
vue .js绑定checkbox并获取、改变选中状态的实例
Aug 24 Javascript
详解webpack打包时排除其中一个css、js文件或单独打包一个css、js文件(两种方法)
Oct 26 Javascript
JS中数据结构之栈
Jan 01 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实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
简单实现php上传文件功能
2017/09/21 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
中国地区三级联动下拉菜单效果分析
2012/11/15 Javascript
js移除事件 js绑定事件实例应用
2012/11/28 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
jquery.hotkeys监听键盘按下事件keydown插件
2014/05/11 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
JS原型链 详解及示例代码
2016/09/06 Javascript
使用vue.js编写蓝色拼图小游戏
2017/03/17 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
对tf.reduce_sum tensorflow维度上的操作详解
2018/07/26 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
解析Python的缩进规则的使用
2019/01/16 Python
python Tkinter版学生管理系统
2019/02/20 Python
Pyqt QImage 与 np array 转换方法
2019/06/27 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
Python把图片转化为pdf代码实例
2020/07/28 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
css3 仿写阿里云水纹效果的示例代码
2018/02/10 HTML / CSS
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
妇女干部培训方案
2014/05/12 职场文书
交通安全标语
2014/06/06 职场文书
大学生入党自传2015
2015/06/26 职场文书
铁头也玩根德 YachtBoy YB-230......
2022/04/05 无线电