纯js单页面赛车游戏

这次就是给大家分享赛车的游戏:
废话不多,直接上代码:

<!DOCTYPE html>
<html>
<head><meta charset="{CHARSET}"><title>Best Fly Car</title><style>input {border: 1px solid yellow;margin-left: 20px;margin-top: 20px;}.way-content {margin-left: auto;margin-right: auto;width: 1024px;height: 700px;position: relative;border: 1px solid burlywood;background-color: darkolivegreen;}.car {color:black;width: 20px;height: 20px;border: 1px solid brown;background: greenyellow;position: absolute;left: 502px;top: 678px;text-align: center;z-index: 99;}.C-car {color:black;width: 20px;height: 15px;border: 1px solid brown;background: red;position: absolute;left: 502px;top: 0px;text-align: center;z-index: 98;}.way-grid {margin: 0 0;margin-left: 412px;background-color: grey;border: none;border-right: 1px solid brown;border-left: 1px solid brown;min-width: 100px;max-width: 1024px;width: 200px;height: 10px;color: white;font-size: 5px;position: relative;text-align: center;}.go {background: greenyellow;width: 100px;height: 50px;text-align: center;}</style>
</head>
<body><div id="way-content" class="way-content"><div id="car" class="car">++</div></div><br /> The width of the road:<input id="wayWhite" type="number" value="200" /> <br /> Keyboard sensitivity: <input type="number" id="LMD" value="10" /><br /> The game difficulty:<input type="number" id="ND" value="5" /><br /><input class="go" id="go" type="button" value="go" /><br /><script type="text/javascript">var wayLeft = [],cO = null,LC = null,RC = null,st = null,clickLR = false,s = null,LMD = 5,wayWhite = 200,ND = 15, //n*2+1;NDArry = [0, 1, -1],gridStr = 'way-grid-',PX = 'px',length = 70,NDIndex = 30,waysetIndex = 10,waysetValue = (1024 - wayWhite) / 2,delvalue = 0,n = 5,waitvalue = 10 / n,checkOut = function () {var index = wayLeft[wayLeft.length - 1].wayLeft,CCarvalue = wayLeft[wayLeft.length - 1].CCarvalue + index,carIndex = parseInt(document.getElementById('car').offsetLeft) + 10;if (carIndex < index + wayWhite && carIndex > index && (CCarvalue == 0 || !(CCarvalue < carIndex && CCarvalue + 20 > carIndex))) {return true;} else {clearInterval(st);clearInterval(cO);clearInterval(LC);clearInterval(RC);var e = new Date();alert('totle :' + parseInt((e.getTime() - s.getTime()) / 600) + 's');document.onkeydown = null;document.onkeyup = null;clearInterval(cO);clearInterval(LC);clearInterval(RC);}},//初始道路坐标getFitstArray = function () {waysetValue = (1 - wayWhite) / 2;for (var i = 0; i < length; i++) {wayLeft[i] = {};wayLeft[i].wayLeft = (1024 - wayWhite) / 2;}},//初始化道路setWay = function () {var docElem = document.createDocumentFragment();for (var i = 0; i < length; i++) {var grid = document.createElement('div');grid.className = 'way-grid';grid.id = gridStr + i;grid.textContent = '|';docElem.appendChild(grid);}document.getElementById('way-content').appendChild(docElem);},//生成下一个道路getNextL = function (firstL) {var CCarvalue = 0;//渐变道路if (waysetIndex > 1) {waysetIndex -= 1;waysetValue = firstL + delvalue;} else if (waitvalue > 0) {//直线缓冲道路waitvalue--;waysetValue = firstL;} else {//渐变规则delvalue = NDArry[parseInt(Math.random() * 3)] * parseInt(n / 2 + 1);CCarvalue = parseInt(Math.random() * wayWhite);waysetIndex = NDIndex;waitvalue = 100 / n;waysetValue = firstL + delvalue;}return waysetValue >= 0 && waysetValue <= (1024 - wayWhite) ? { wayLeft: waysetValue, CCarvalue: CCarvalue } : { wayLeft: firstL, CCarvalue: CCarvalue };},//根据数组刷新道路getWayByArry = function () {var CCarvalueList = document.getElementsByClassName('C-car');while (CCarvalueList[0]) {CCarvalueList[0].remove();}for (var i = 0; i < wayLeft.length; i++) {var grid = document.getElementById(gridStr + i);grid.style['width'] = wayWhite + PX;grid.style['margin-left'] = wayLeft[i].wayLeft + PX;if (wayLeft[i].CCarvalue) {var CCarvalue = document.createElement('div');CCarvalue.id = 'CCarvalue' + i;CCarvalue.className = 'C-car';CCarvalue.textContent = '+';CCarvalue.style['left'] = wayLeft[i].CCarvalue + PX;grid.appendChild(CCarvalue);}}},//左键事件lClick = function () {if (document.onkeydown) {var a = document.getElementById('car')a.style['left'] = (a.offsetLeft - LMD) + PX;}},//右键事件rClick = function () {if (document.onkeydown) {var a = document.getElementById('car')a.style['left'] = (a.offsetLeft + LMD) + PX;}},//确定事件goClick = function () {clearInterval(st);clearInterval(cO);clearInterval(LC);clearInterval(RC);document.onkeydown = null;document.onkeyup = null;LMD = parseInt(document.getElementById('LMD').value) / 4;wayWhite = parseInt(document.getElementById('wayWhite').value);ND = parseInt(document.getElementById('ND').value) * 1 + 1;NDIndex = 30;getFitstArray();getWayByArry();s = new Date();document.onkeydown = function (evt) {var evt = window.event ? window.event : evt;if (clickLR) {} else if (evt.keyCode == 37) {//锁定当前按键clickLR = true;LC = setInterval(lClick, 10);} else if (evt.keyCode == 39) {//锁定当前按键clickLR = true;RC = setInterval(rClick, 10);}};document.onkeyup = function (evt) {//清除锁定clickLR = false;clearInterval(LC);clearInterval(RC);}document.getElementById('car').style['left'] = 502 + PX;st = setInterval(stratBC, 100 / ND);cO = setInterval(checkOut, 10);},stratBC = function () {setWayArray();getWayByArry();},setWayArray = function () {var firstL = wayLeft[0],nextL = (1024 - wayWhite) / 2;nextL = getNextL(firstL.wayLeft);for (var i = 0; i < wayLeft.length; i++) {firstL = wayLeft[i];wayLeft[i] = nextL;nextL = firstL;}};getFitstArray();setWay();getWayByArry();document.getElementById('go').onclick = goClick;</script>
</body>
</html>

图片效果:

把代码直接写进HBuilder X就可以直接运行了。

纯js单页面赛车游戏相关推荐

  1. 纯JS单页面赛车游戏代码分享

    分享一个以前写的小游戏,纯js游戏,代码很简单.欢迎大家来喷呦! 效果图: 代码展示://直接复制到html文件即可 支持IE9+版本 <!DOCTYPE html> <html&g ...

  2. php赛车源码,纯JS单页面赛车游戏制作代码分享

    分享一个以前写的小游戏,纯js游戏,代码很简单.欢迎大家来喷呦! 效果图: 代码展示://直接复制到html文件即可 支持IE9+版本 Best Fly Car input { border: 1px ...

  3. vue 扫码页面限制区域_Vue.js 单页面多路由区域操作的实例详解

    单页面多路由区域操作 在一个页面中有两个及以上的区域,需要通过设置路由的index.js,来操作这些区域的内容 app.vue 中设置: index.js中设置: import vue from 'v ...

  4. 纯js制作的弹球游戏

    纯js的弹球游戏,撞壁自动返回,按钮放置暂停移动,移开开始移动 1 <!-- 2 author:zhangjie 3 date :2016-7-23 4 --> 5 <!DOCTYP ...

  5. 纯JS写的小众游戏——走四棋

    过年正赶上新冠病毒不让出门,在家闲着没事,偶尔玩了一下老家流行的游戏(走四棋),然后就想把这个游戏用JS写出来,先练了一下贪吃蛇,等下也会在我的博客中单独贴出来,按照贪吃蛇动态生成dom元素的方法,粗 ...

  6. 纯JS实现填字游戏实战总结

    文章目录 1 游戏整体框架和流程 2 UI设计 2.1 顶部空白格 2.2 底部16字 3 功能设计 3.1 四字洗牌并展示 3.2 拖拽 3.2.1 元素移动的坐标要素 3.2.2 元素结束移动的判 ...

  7. 如何用纯js做一个大富翁游戏

    下面这张是效果图: 先立个flag,一个星期内把这个坑填了 今天7月1号,建党节,在这个伟大的节日,我来填坑了. 这个游戏有以下几个难点: 1.礼品的位置 2.小怪兽位置的变化(走路.转身和回退) 3 ...

  8. 纯js实现页面漂浮图

    js代码 var xPos = 700; var yPos = 300; var step = 1; var delay = 30; var height = 0; var Hoffset = 0; ...

  9. js 单页面ajax缓存策略,浅谈ajax的缓存机制---IE浏览器方面

    这篇文章主要介绍了IE浏览器关于ajax的缓存机制,文中给大家提到了Ajax解决浏览器的缓存问题,解决方法有很多种.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. IE浏览器对于同一 ...

最新文章

  1. tf.train.Saver函数的用法之保存全部变量和模型
  2. 微信 商城 php,PHP微信商城
  3. SQLServer性能优化之查询提示
  4. java paint 怎么用_java如何使用paint方法画图
  5. 如何将FPGA资源平民化?阿里工程师有了新突破
  6. Angular HTTPClient的使用方法
  7. mysql“Access denied for user 'root'@'localhost'”问题的解决
  8. Oracle 10g RAC Installer 故障之--Oracle软件安装无法发现集群
  9. Git commit/pull/push的操作步骤
  10. XCode 4.0 iOS SDK 4.3 iPhone证书破解 完全教程
  11. linux shell 十进制转十六进制_问1得10:shell十进制转换到任意进制,多大事儿,一行搞定!
  12. PyQt5|PySide2 UI界面内嵌web浏览器的方法
  13. 太阳直射点纬度计算公式_高中地理——每日讲1题(太阳直射点、太阳高度角、影子方向)...
  14. android 视频预览,预览视频  |  Android 开发者  |  Android Developers
  15. 微信修改基本配置信息
  16. arcgis统计矢量面内栅格数据像元值个数
  17. Win10打开任务管理器卡死的解决方法
  18. use case简介
  19. PKU2069 Super Star 点集最小外接球
  20. Gavin老师Transformer直播课感悟 - 通过Rasa Interactive对Rasa对话机器人项目实战之ConcertBot源码、流程及对话过程解密(四十三)

热门文章

  1. win cmd快速调取CTex集宏手册及一份不太简短的latex介绍
  2. 【kimol君的无聊小发明】—用python写PDF转换器
  3. Java初级项目学习第一讲:Maven项目构建
  4. 物联网无线通讯wifi模块AP和STA模式分别是什么意思?
  5. php artisan --,php artisan
  6. 【Linux】面试题(2021最新版)
  7. 2020年985大学计算机分数线,2020年985大学名单分数线
  8. 火车头图片储存-火车头采集图片储存插件及教程
  9. 读书计划--2009年1月
  10. 一些可以参考的文档集合7