DDR爱好者之家 Design By 杰米
这是昨天用原生的js写的打字动画游戏,主要用的间歇定时器,对象,还有Math方法,感觉还行,主要看消除字母的时间快慢,但是也有bug,就是字母都是一次性生成的,所以一开始,看起来感觉会有种爆炸的感觉,如果能够一次性生成一批,然后分批往下掉就好了,求大神帮忙改改,大家也可以参考参考。
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style> body,button{ margin: 0; padding: 0; } body { background: #333; } #game { width: 400px; margin: 0 auto; } #start { width: 80px; height: 40px; } span { margin: 20px; color: white; } .letter { position: absolute; color: yellow; font: bold 30px "Arial"; } </style> <script> window.onload= function () { var start = document.getElementById("start"); var scroll = document.getElementById("scroll"); var time = document.getElementById("time"); var g = 1 ;//Gravity var timenum = 0 ;//时间的计数 var num = 0 ;//成绩的计数 var gameover = false ; var timeandtime = null; var letters = null ; //字母放在一个字符串里面,随机选取 var str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //点击开始按钮,字母会自动生成,从顶部,以随机速度落下 //用户操作:按钮对应字母的按钮,然后字母就会消失 //用户没有点击到的按钮到达底部以后会回到顶上重新落下; //用户清除所有字母后,弹出对话框,显示分数和文字。 //封装一个对象,里面包含获取事件对象,页面位置,清除冒泡,获取事件目标的兼容性方法 var eventUtil = { getEvent: function (event) { return event || window.event; }, getPageX: function (event) { return event.pageX || event.clientX + document.documentElement.scrollLeft; }, getPageY: function (event) { return event.pageY || event.clientY + document.documentElement.scrollTop; }, stopPropagation: function (event) { if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } }, getTarget: function (event) { return event.target || event.srcElement; } }; start.onclick= function () { for(var i = 0 ;i<26;i++){ new letter(); } letters = document.body.children;//将页面中所有的div全部放入一个伪数组中,第一个除外,属于game,因此遍历从1开始 //在键盘上,按下对应的字母键,字母会立即消失,同时分数会增加,并且在上面重新生成; document.onkeydown = function (event) { var evt = eventUtil.getEvent(event); var keychar = String.fromCharCode(evt.keyCode);//将按下的字母键盘码转换成直接的大写字母 for(var i = 1 ;i<letters.length;i++){ if(keychar===letters[i].innerHTML){ num++; scroll.innerHTML = num; document.body.removeChild(letters[i]); } } } timeandtime=setInterval(function () { timenum = timenum + 1 ; console.log(letters); if(letters.length==1){//当伪数组的长度只有一个时,那么游戏就结束 gameover = true ; clearInterval(timeandtime); alert("用时"+timenum+"秒,再接再厉!突破10秒!"); } else { time.innerHTML = timenum; } },1000) } //封装函数 function letter(){ this.x=Math.random()*900+100; //设置位置在100-1000之间 this.y=0; this.speedY = Math.random()*4+1; //速度随机设置在1-5之间 this.value = str[parseInt(Math.random()*25)]; //在26个字母中随机生成一个字母 var letDiv = document.createElement("div"); letDiv.className = "letter"; letDiv.style.top = this.y+"px"; letDiv.style.left = this.x+ "px"; letDiv.innerHTML = this.value; document.body.appendChild(letDiv); //字母往下掉 var that = this ; this.timer=setInterval(function () { //leader = leader + step; that.y = that.y + that.speedY; if(that.y>=client().height-letDiv.offsetHeight){ that.y = 0; that.x = Math.random()*900+100; } if(!gameover){ letDiv.style.left = that.x + "px"; letDiv.style.top = that.y + "px"; } else { clearInterval(that.timer); } },15) } // 获取可视窗口的宽度和高度窗,兼容性问题 function client() { return { width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0, height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0 }; } } </script> </head> <body> <div id="game"> <button id="start">开始</button> <span>得分:<i id="scroll">0</i></span> <span>计时:<i id="time">0</i></span> </div> </body> </html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月28日
2024年11月28日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]