写的比较乱,有个逻辑错误:蛇吃了果果后应该是蛇尾加一节,写成了蛇头部增加一节- -。

可用键盘的上下左右键操作;
效果图:
代码如下:
<html>
<head>
<title>
贪吃蛇
</title>
<style type="text/css">
body{margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-select:none;
-moz-user-select:none;
-ms-user-select:none;
user-select:none;}
table{border-collapse:collapse;width:500px}
td{border:1px solid white;width:20px;height:20px;}
#wrap{width:500px;height:500px;background-color:#8B8386;margin:0 auto;position:absolute;border:1px solid #8B2500;}
#tar{width:20px;height:20px;position:absolute;background-color:#FFEE26;}
.num{width:20px;height:20px;background-color:#FDFF68;border:1px solid blue;border-radius:50%;position:absolute;}
input{color:red;font-size:20px;font-weight:bold;position:absolute;display:block;width:60px;height:35px;}
#btn2{top:45px;left:0px;}
#btn4{top:90px;left:70px;}
#btn1{top:45px;left:140px;}
#btn3{top:0px;left:70px;}
#btn{position:absolute;background-color:black;width:200px;height:125px;}
#txt{width:80px;height:55px;background-color:black;position:absolute;left:60px;top:35px;color:white;font-size:16px;font-weight:bold;line-height:55px;text-align:center;cursor:move;}
</style>
</head>
<body>
<div id="btn" style="left:520px;top:20px">
<input type="button" value="→" id="btn1"/>
<input type="button" value="←" id="btn2"/>
<input type="button" value="↑" id="btn3"/>
<input type="button" value="↓" id="btn4"/>
<div id="txt">点此拖动</div>
</div>
<div id="wrap" style="left:20px;top:20px">
<div id="tar"></div>
<table>
<tbody id="tb">
</tbody>
</table>
<div class="num"></div>
<div class="num"></div>
<div class="num"></div>
<div class="num"></div>
<div class="num"></div>
</div>
<script type="text/javascript">
var tb=document.getElementById('tb');
var wrap=document.getElementById('wrap');
var tr=new Array();
var td=new Array();
for(var i=0;i<25;i++) //绘制地图
{
tr[i]=document.createElement('tr');
tb.appendChild(tr[i]);
for(var j=0;j<25;j++)
{
td[j]=document.createElement('td');
tr[i].appendChild(td[j]);
}
}
var tar=document.getElementById('tar'); //食物定位
function food()
{
var a,b;
a=Math.random()*460;
a=Math.floor(a/20)*20+20;
b=Math.random()*460;
b=Math.floor(b/20)*20+20;
tar.style.left=a+"px";
tar.style.top=b+"px";
}
food();
var s=document.getElementsByClassName('num'); //定位蛇的位置
s[0].style.backgroundColor="#3EFF1A";
var x=300,y=400,f,d,p,Fraction=0,t=600,tt=60;
for(var k=0;k<s.length;k++)
{
s[k].style.left=x+"px";
s[k].style.top=y+20*k+"px";
}
function move(obj,direction) //控制移动函数开始
{
clearTimeout(d);
s=document.getElementsByClassName('num');
var l=new Array();
l[0]=s[0].style.left;
var w=new Array();
w[0]=s[0].style.top;
obj; //移动方向
s[0].style.left=x+"px";
s[0].style.top=y+"px";
for(var k1=1;k1<s.length;k1++)
{
l[k1]=s[k1].style.left;
w[k1]=s[k1].style.top;
s[k1].style.left=l[k1-1];
s[k1].style.top=w[k1-1];
}
if(parseInt(s[0].style.left)==parseInt(tar.style.left)&&parseInt(s[0].style.top)==parseInt(tar.style.top))
{
t=t-tt;
tt-=5;
if(tt==0)tt=5;
var new_div=document.createElement('div');
new_div.className="num";
Fraction+=100;
if(p==1)
{
new_div.style.top=s[0].style.top;
new_div.style.left=parseInt(s[0].style.left)+20+"px";
}
if(p==2)
{
new_div.style.top=s[0].style.top;
new_div.style.left=parseInt(s[0].style.left)-20+"px";
}
if(p==3)
{
new_div.style.left=s[0].style.left;
new_div.style.top=parseInt(s[0].style.top)-20+"px";
}
if(p==4)
{
new_div.style.left=s[0].style.left;
new_div.style.top=parseInt(s[0].style.top)+20+"px";
}
s[0].parentNode.insertBefore(new_div,s[0]);
food();
s[0].style.backgroundColor="#3EFF1A";
for(var k=1;k<s.length;k++)
{
s[k].style.backgroundColor="#FDFF68";
}
}
if(parseInt(s[0].style.left)<0||parseInt(s[0].style.left)>=500||parseInt(s[0].style.top)<0||parseInt(s[0].style.top)>=500)
{
alert("GAME OVER!"+"你的分数为:"+Fraction+"分");
food();
x=300;
y=400;
for(var k=0;k<5;k++)
{
s[k].style.left=x+"px";
s[k].style.top=y+20*k+"px";
}
for(var kk=s.length-1;kk>4;kk--)
{
s[kk].parentNode.removeChild(s[kk]);
}
t=700;
tt=60;
return false;
}
for(k=1;k<s.length;k++)
{
if(parseInt(s[0].style.left)==parseInt(s[k].style.left)&&parseInt(s[0].style.top)==parseInt(s[k].style.top))
{
alert("GAME OVER!"+"你的分数为:"+Fraction+"分");
food();
x=300;
y=400;
for(var k=0;k<5;k++)
{
s[k].style.left=x+"px";
s[k].style.top=y+20*k+"px";
}
for(var kk=s.length-1;kk>4;kk--)
{
s[kk].parentNode.removeChild(s[kk]);
}
t=700;
tt=60;
return false;
}
}
d=setTimeout(direction,t);
}
document.getElementById('btn1').onclick=function R() //绑定鼠标点击事件
{
x=parseInt(s[0].style.left);
y=parseInt(s[0].style.top);
if(parseInt(s[0].style.left)<parseInt(s[1].style.left))return false;
p=1;
move(x=x+20,R);
}
document.getElementById('btn2').onclick=function L()
{
x=parseInt(s[0].style.left);
y=parseInt(s[0].style.top);
if(parseInt(s[0].style.left)>parseInt(s[1].style.left))return false;
p=2;
move(x=x-20,L);
}
document.getElementById('btn3').onclick=function T()
{
x=parseInt(s[0].style.left);
y=parseInt(s[0].style.top);
if(parseInt(s[0].style.top)>parseInt(s[1].style.top))return false;
p=3;
move(y=y-20,T);
}
document.getElementById('btn4').onclick=function B()
{
x=parseInt(s[0].style.left);
y=parseInt(s[0].style.top);
if(parseInt(s[0].style.top)<parseInt(s[1].style.top))return false;
p=4;
move(y=y+20,B);
}
document.onkeydown=function(event) //绑定键盘事件
{
var e=event||window.event;
if(e&&e.keyCode==39)
{
function R()
{
x=parseInt(s[0].style.left);
y=parseInt(s[0].style.top);
if(parseInt(s[0].style.left)<parseInt(s[1].style.left))return false;
p=1;
move(x=x+20,R);
}
R();
return false;
}
if(e&&e.keyCode==37)
{
function L()
{
x=parseInt(s[0].style.left);
y=parseInt(s[0].style.top);
if(parseInt(s[0].style.left)>parseInt(s[1].style.left))return false;
p=2;
move(x=x-20,L);
}
L();
return false;
}
if(e&&e.keyCode==38)
{
function T()
{
x=parseInt(s[0].style.left);
y=parseInt(s[0].style.top);
if(parseInt(s[0].style.top)>parseInt(s[1].style.top))return false;
p=3;
move(y=y-20,T);
}
T();
return false;
}
if(e&&e.keyCode==40)
{
function B()
{
x=parseInt(s[0].style.left);
y=parseInt(s[0].style.top);
if(parseInt(s[0].style.top)<parseInt(s[1].style.top))return false;
p=4;
move(y=y+20,B);
}
B();
return false;
}
}
var btn=document.getElementById('btn');
var btn_l,btn_t;
function btn_move()
{
btn_l=clientX-parseInt(wrap.style.left)
}
confirm("可用键盘的上下左右四个按键进行游戏操作!")
var btn=document.getElementById('btn'); //开始制作操作区拖动效果
var txt=document.getElementById('txt');
var new_x,new_y,bool=false;
txt.onmousedown=function ()
{
var eve=event||window.event;
bool=true;
new_x=eve.clientX-parseInt(btn.style.left);
new_y=eve.clientY-parseInt(btn.style.top);
}
btn.onmousemove=function btn_move(event)
{
if(bool)
{
var e=event||window.event;
btn.style.left=e.clientX-new_x;
btn.style.top=e.clientY-new_y;
if(parseInt(btn.style.left)<520)btn.style.left="520px";
if(parseInt(btn.style.top)<0)btn.style.top="0px";
if(parseInt(btn.style.top)>395)btn.style.top="395px";
}
}
document.body.onmouseup=function()
{
bool=false;
}
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# js
# 贪吃蛇游戏
# javascript贪吃蛇
# JS写的贪吃蛇游戏(个人练习)
# javascript贪吃蛇完整版(源码)
# js贪吃蛇游戏实现思路和源码
# javascript实现简单的贪吃蛇游戏
# JS实现的贪吃蛇游戏完整实例
# 纯原生js实现贪吃蛇游戏
# 原生js实现的贪吃蛇网页版游戏完整实例
# javascript编写贪吃蛇游戏
# js贪吃蛇网页版游戏特效代码分享(挑战十关)
# js实现网页版贪吃蛇游戏
# 拖动
# 绑定
# 数为
# 有个
# 吃了
# 右键
# 点此
# 上下左右
# 果果
# 后应
# 鼠标点击
# 写成了
# 贪吃蛇
# 蛇尾
# radius
# red
# size
# font
# input
# position
相关文章:
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
如何正确下载安装西数主机建站助手?
网站建设制作、微信公众号,公明人民医院怎么在网上预约?
如何快速搭建虚拟主机网站?新手必看指南
建站之星微信建站一键生成小程序+多端营销系统
如何在宝塔面板中创建新站点?
,石家庄四十八中学官网?
如何在橙子建站中快速调整背景颜色?
韩国服务器如何优化跨境访问实现高效连接?
网站制作企业,网站的banner和导航栏是指什么?
北京网站制作网页,网站升级改版需要多久?
实例解析angularjs的filter过滤器
如何在阿里云域名上完成建站全流程?
如何快速使用云服务器搭建个人网站?
如何在Windows虚拟主机上快速搭建网站?
西安市网站制作公司,哪个相亲网站比较好?西安比较好的相亲网站?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何在万网主机上快速搭建网站?
自助网站制作软件,个人如何自助建网站?
广东专业制作网站有哪些,广东省能源集团有限公司官网?
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
网站设计制作企业有哪些,抖音官网主页怎么设置?
婚礼视频制作网站,学习*后期制作的网站有哪些?
一键网站制作软件,义乌购一件代发流程?
视频网站制作教程,怎么样制作优酷网的小视频?
Thinkphp 中 distinct 的用法解析
如何选择高效响应式自助建站源码系统?
制作公司内部网站有哪些,内网如何建网站?
建站org新手必看:2024最新搭建流程与模板选择技巧
建站之星如何修改网站生成路径?
广州营销型建站服务商推荐:技术优势与SEO优化解析
如何快速辨别茅台真假?关键步骤解析
jQuery 常见小例汇总
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
如何获取PHP WAP自助建站系统源码?
网站制作模板下载什么软件,ppt模板免费下载网站?
如何用西部建站助手快速创建专业网站?
成都品牌网站制作公司,成都营业执照年报网上怎么办理?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?
高防服务器租用如何选择配置与防御等级?
如何设置并定期更换建站之星安全管理员密码?
音响网站制作视频教程,隆霸音响官方网站?
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
建站之星下载版如何获取与安装?
Bpmn 2.0的XML文件怎么画流程图
*请认真填写需求信息,我们会在24小时内与您取得联系。