php赛车源码,纯JS单页面赛车游戏制作代码分享
分享一个以前写的小游戏,纯js游戏,代码很简单。欢迎大家来喷呦!
效果图:
代码展示://直接复制到html文件即可 支持IE9+版本
Best Fly Car
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;
}
The width of the road:
Keyboard sensitivity:
The game difficulty:
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;
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
php赛车源码,纯JS单页面赛车游戏制作代码分享相关推荐
- 纯js单页面赛车游戏
纯js单页面赛车游戏 这次就是给大家分享赛车的游戏: 废话不多,直接上代码: <!DOCTYPE html> <html> <head><meta chars ...
- 纯JS单页面赛车游戏代码分享
分享一个以前写的小游戏,纯js游戏,代码很简单.欢迎大家来喷呦! 效果图: 代码展示://直接复制到html文件即可 支持IE9+版本 <!DOCTYPE html> <html&g ...
- js树形结构html源码,纯JS树形结构插件
插件描述:纯JS树形结构插件,代码精简方便定制修改 更新时间:2020-05-20 22:30:39 更新说明:内含旧版.新版源码更新功能: 1.简化全部代码,从660行减少为430行 2.优化实现思 ...
- 手机页面html5 关闭窗口,JS关闭窗口或JS关闭页面的几种代码分享
这篇文章介绍了JS关闭窗口或JS关闭页面的几种代码,有需要的朋友可以参考一下 第一种:JS定时自动关闭窗口 代码如下: 第二种:点击链接没有提示的JS关闭窗口 代码如下: 关闭窗口 第三种:窗口没有提 ...
- js 自动关闭html页面,JS关闭窗口或JS关闭页面的几种代码分享
第一种:JS定时自动关闭窗口 第二种:点击链接没有提示的JS关闭窗口 关闭窗口 第三种:窗口没有提示自动关闭的js代码 第三种:php代码提交窗口之后提示信息并自动关闭窗口的js代码 document ...
- 格式化html源码正则,用正则表达式格式化html标签的代码分享
< color:red; filter:chroma(color="#0f0f0f"); background-color:#f0f0f0; font-family:verd ...
- 多关卡连连看php源码_前端实现连连看小游戏实例代码
博主玩了这么久的连连看,居然是第一次发现,连连看最多只能有2个转弯.orz- 在网上搜索连连看的连线算法判断,并没有找到很全面的,经过自己摸索之后,画了下面的图(图有点丑--) 一. 2个物体在同一直 ...
- 傻瓜一键制作html,营销号生成器源码(纯HTML+CSS+JS)
营销号生成器源码(纯HTML+CSS+JS),最近很火的营销号生成器相信很多人都不陌生,它能帮您生成一段非常标准的小编文案,并且内容废话极多,一般用来调侃使用.本次带来营销号生成器源码资源下载,包含了 ...
- vue 扫码页面限制区域_Vue.js 单页面多路由区域操作的实例详解
单页面多路由区域操作 在一个页面中有两个及以上的区域,需要通过设置路由的index.js,来操作这些区域的内容 app.vue 中设置: index.js中设置: import vue from 'v ...
最新文章
- 我崩溃了!月薪30K必须掌握的开源项目Java中SPI机制
- java基础,没事常看看(一)类、对象、引用
- IQ01/IQ02 Create/Change Material Serial Number BAPI
- 在阿里云的Ubuntu ECS instance 使用Apt-get安装git
- 构建高可用服务器之 Keepalive参数详解
- redis php方案,Redis三种部署方案图文详解
- 【编撰】Directfb 深入 002 DirectFB内存分配与管理:surface pool
- 内核代码架构图 :systemtap函数选择点
- Angular - - ng-focus、ng-blur
- 解读审计领域国内外资质认证CISA、ISO27001 Auditor
- Convert Sublime Text 2/3 to Licensed Version
- 在CentOS8下安装搭建gitlab下载安装备份升级迁移记录
- 惠普传真服务器位置,惠普传真机的使用方法
- python2与python3实现读取网页刷访问量
- ios模拟器装ipa包_用iOS模拟器安装App的方法
- java实现姓名转拼音并处理多音字
- js计算当前时间的为年的第几周,以及周对应的时间范围
- HTML5+CSS3小实例:菜单栏图标悬停效果
- 股票北向资金数据接口在哪里?
- 【图片新闻】五角大楼的国防创新部DIU正在规划建设一个未来机器人空间站