在html中贪吃蛇的方向怎么用键盘控制,纯js贪吃蛇,无法用键盘控制蛇方向

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

图片切换

#map{

position:relative;

width: 600px;

height: 600px;

border: 1px solid black;

left:200px;

}

var map=document.getElementById("map");

//创建蛇

function Snake(){

this.body=[

{x:2,y:0},//头

{x:1,y:0},//身

{x:0,y:0}//尾]

]

//显示

this.display=function(){

for(i=0;i

var s=document.createElement("div");

this.body[i].flag=s;

s.style.width=10+"px";

s.style.height=10+"px";

s.style.background="red";

s.style.borderRadius="50%";

s.style.position="absolute";

s.style.left=this.body[i].x * 10+'px';

s.style.top=this.body[i].y * 10+'px';

map.appendChild(s);

}

};

//蛇的持续运动

this.running=function(){

for (var i=this.body.length-1; i>0; i--) {

this.body[i].x = this.body[i-1].x;

this.body[i].y = this.body[i-1].y;

}

//蛇的方向

this.direction="buttom";

//控制蛇头的方向

switch(this.direction){

case "left":

this.body[0].x -= 1;

break;

case "right":

this.body[0].x += 1;

break;

case "top":

this.body[0].y -= 1;

break;

case "buttom":

this.body[0].y += 1;

break;

}

};

};

//键盘控制蛇运动

document.οnkeydοwn=function(e){

e=event||window.event;

switch(e.keyCode){

case 37:

if(snake.direction!="right"){

snake.direction="left";}

break;

case 38:

if(snake.direction!="top"){

snake.direction="buttom";}

break;

case 39:

if(snake.direction!="left"){

snake.direction="right";}

break;

case 40:

if(snake.direction!="buttom"){

snake.direction="top";}

break;

}

};

function Food(){

var f=document.createElement("div");

f.style.width="10px";

f.style.height="10px";

f.style.left=Math.floor(Math.random()*590)+"px";

f.style.top=Math.floor(Math.random()*590)+"px";

f.style.background="black";

f.style.position="absolute";

map.appendChild(f);

}

Food();

var snake=new Snake();

snake.running();

snake.display();

34b2db85a5fd6bb91fe71a36bad5ccf8.png

问题:

按上下左右的键盘,蛇头不运动。

求求大佬解决一下!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值