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 相关文章推荐
基于jquery的滑动样例代码
Nov 20 Javascript
Javascript绝句欣赏 一些经典的js代码
Feb 22 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
Oct 05 Javascript
微信小程序 image组件binderror使用例子与js中的onerror区别
Feb 15 Javascript
JavaScript获取URL参数的方法之一
Mar 24 Javascript
angular.fromJson与toJson方法用法示例
May 17 Javascript
使用jQuery实现简单的tab框实例
Aug 22 jQuery
利用canvas中toDataURL()将图片转为dataURL(base64)的方法详解
Nov 20 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
Dec 31 Javascript
vue-cli 如何打包上线的方法示例
May 08 Javascript
详解如何创建并发布一个 vue 组件
Nov 08 Javascript
详解key在Vue列表渲染时究竟起到了什么作用
Apr 20 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入门速成教程
2007/03/19 PHP
介绍一些PHP判断变量的函数
2012/04/24 PHP
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
jQuery实现带分组数据的Table表头排序实例分析
2015/11/24 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
jQuery简单判断值是否存在于数组中的方法示例
2018/04/17 jQuery
jQuery基于闭包实现的显示与隐藏div功能示例
2018/06/09 jQuery
js 闭包深入理解与实例分析
2020/03/19 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
js实现验证码干扰(静态)
2021/02/22 Javascript
跟老齐学Python之dict()的操作方法
2014/09/24 Python
Python的pycurl包用法简介
2015/11/13 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Python实现二维曲线拟合的方法
2018/12/29 Python
Python设计模式之命令模式原理与用法实例分析
2019/01/11 Python
python用for循环求和的方法总结
2019/07/08 Python
关于Python-faker的函数效果一览
2019/11/28 Python
Python导入模块包原理及相关注意事项
2020/03/25 Python
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
美国领先的眼镜和太阳镜在线零售商:Glasses.com
2019/08/26 全球购物
经济实惠的名牌太阳镜和眼镜:Privé Revaux
2021/02/07 全球购物
英语教学随笔感言
2014/02/20 职场文书
客服专员岗位职责
2014/02/28 职场文书
知识竞赛主持词
2014/03/26 职场文书
公共机构节能宣传周活动总结
2014/07/09 职场文书
写字楼租赁意向书
2014/07/30 职场文书
2014年人大工作总结
2014/12/10 职场文书
超市收银员岗位职责
2015/04/07 职场文书
夫妻吵架保证书
2015/05/08 职场文书
春晚观后感
2015/06/11 职场文书
生活委员竞选稿
2015/11/21 职场文书
表扬信范文
2019/04/22 职场文书