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 相关文章推荐
分享一个自定义的console类 让你不再纠结JS中的调试代码的兼容
Apr 20 Javascript
jQuery插件slider实现拖动滑块选取价格范围
Apr 30 Javascript
在JavaScript中使用对数Math.log()方法的教程
Jun 15 Javascript
JavaScript 经典实例日常收集整理(常用经典)
Mar 30 Javascript
js实现div模拟模态对话框展现URL内容
May 27 Javascript
Three.js学习之正交投影照相机
Aug 01 Javascript
让你彻底掌握es6 Promise的八段代码
Jul 26 Javascript
angular4自定义组件详解
Sep 28 Javascript
node将geojson转shp返回给前端的实现方法
May 29 Javascript
Element-ui DatePicker显示周数的方法示例
Jul 19 Javascript
JavaScript实现简单的图片切换功能(实例代码)
Apr 10 Javascript
Vue打包部署到Nginx时,css样式不生效的解决方式
Aug 03 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
上海牌131型七灯四波段四喇叭一级收音机
2021/03/02 无线电
初级的用php写的采集程序
2007/03/16 PHP
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
php绘图之加载外部图片的方法
2015/01/24 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
js的匿名函数使用介绍
2013/12/11 Javascript
jQuery中:has选择器用法实例
2014/12/30 Javascript
js实现Select头像选择实时预览代码
2015/08/17 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
p5.js入门教程和基本形状绘制
2018/03/15 Javascript
vue中如何去掉空格的方法实现
2018/11/09 Javascript
详解一个基于套接字实现长连接的express
2019/03/28 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
Vuex的API文档说明详解
2020/02/05 Javascript
JS实现分页导航效果
2020/02/19 Javascript
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
python日志logging模块使用方法分析
2019/05/23 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
python中用Scrapy实现定时爬虫的实例讲解
2021/01/18 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
经济系大学生求职信
2013/10/01 职场文书
军训考核自我鉴定
2014/02/13 职场文书
运动会报道稿300字
2014/10/02 职场文书
2014幼儿园家长工作总结
2014/11/10 职场文书
学校国庆节活动总结
2015/03/23 职场文书
酒店人事主管岗位职责
2015/04/11 职场文书
写给女朋友的检讨书
2015/05/06 职场文书
2015年乡镇科普工作总结
2015/05/13 职场文书
党内外群众意见范文
2015/06/02 职场文书
紧急迫降观后感
2015/06/15 职场文书
公司财务制度:成本管理控制制度模板
2019/11/19 职场文书