分享一个以前写的小游戏,纯js游戏,代码很简单。欢迎大家来喷呦!

效果图:
代码展示://直接复制到html文件即可 支持IE9+版本
<!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>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js单页面赛车游戏
# js赛车游戏
# js游戏
# js实现打地鼠小游戏
# JavaScript 打地鼠游戏代码说明
# JavaScript仿微信打飞机游戏
# 纯原生js实现贪吃蛇游戏
# JavaScript实现Fly Bird小游戏
# 纯js和css完成贪吃蛇小游戏demo
# js贪吃蛇游戏实现思路和源码
# javascript HTML5 canvas实现打砖块游戏
# JS写的贪吃蛇游戏(个人练习)
# JavaScript实现打地鼠小游戏
# 右键
# 很简单
# 欢迎大家
# 左键
# 大家多多
# greenyellow
# absolute
# red
# index
# burlywood
# background
# relative
# position
# black
# brown
# car
# color
# darkolivegreen
# body
# font
相关文章:
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何在阿里云高效完成企业建站全流程?
建设网站制作价格,怎样建立自己的公司网站?
c# 在ASP.NET Core中管理和取消后台任务
php条件判断怎么写_ifelse和switchcase的使用区别【对比】
油猴 教程,油猴搜脚本为什么会网页无法显示?
视频网站app制作软件,有什么好的视频聊天网站或者软件?
大学网站设计制作软件有哪些,如何将网站制作成自己app?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
网站制作服务平台,有什么网站可以发布本地服务信息?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
如何在服务器上配置二级域名建站?
国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?
制作网站的软件免费下载,免费制作app哪个平台好?
宝塔面板如何快速创建新站点?
广州商城建站系统开发成本与周期如何控制?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何用美橙互联一键搭建多站合一网站?
导航网站建站方案与优化指南:一站式高效搭建技巧解析
如何制作网站标识牌,动态网站如何制作(教程)?
如何快速登录WAP自助建站平台?
如何通过二级域名建站提升品牌影响力?
C++如何使用std::optional?(处理可选值)
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
微信h5制作网站有哪些,免费微信H5页面制作工具?
如何在Windows服务器上快速搭建网站?
网站专业制作公司有哪些,做一个公司网站要多少钱?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何基于云服务器快速搭建个人网站?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
威客平台建站流程解析:高效搭建教程与设计优化方案
阿里云高弹*务器配置方案|支持分布式架构与多节点部署
如何自定义建站之星模板颜色并下载新样式?
建站主机默认首页配置指南:核心功能与访问路径优化
可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?
如何快速生成可下载的建站源码工具?
深圳网站制作平台,深圳市做网站好的公司有哪些?
如何通过多用户协作模板快速搭建高效企业网站?
如何通过老薛主机一键快速建站?
如何快速选择适合个人网站的云服务器配置?
建站之星上传入口如何快速找到?
攀枝花网站建设,攀枝花营业执照网上怎么年审?
招商网站制作流程,网站招商广告语?
成都响应式网站开发,dw怎么把手机适应页面变成网页?
如何快速使用云服务器搭建个人网站?
网站网页制作专业公司,怎样制作自己的网页?
php json中文编码为null的解决办法
网站制作公司排行榜,抖音怎样做个人官方网站
*请认真填写需求信息,我们会在24小时内与您取得联系。