Javascript Java脚本中的冲突检测问题

Javascript Java脚本中的冲突检测问题,javascript,html,collision-detection,Javascript,Html,Collision Detection,var u=8; var x=[]; 变量y=[]; 变量s={ x:20, y:20, l:1, }; 变量e={ e:错, x:0,, y:0, }; 函数设置(){ 制作食物(); 石灰; } document.onkeydown=keydown; 功能键控(e){ ctrls(如键码,正确); } 功能ctrls(键码,布尔){ 如果(键代码==37){ s、 a=真; s、 w=假; s、 d=假; s、 s=假; } 如果(键代码==38){ s、 a=假; s、 w=真; s、 d

var u=8;
var x=[];
变量y=[];
变量s={
x:20,
y:20,
l:1,
};
变量e={
e:错,
x:0,,
y:0,
};
函数设置(){
制作食物();
石灰;
}
document.onkeydown=keydown;
功能键控(e){
ctrls(如键码,正确);
}
功能ctrls(键码,布尔){
如果(键代码==37){
s、 a=真;
s、 w=假;
s、 d=假;
s、 s=假;
}
如果(键代码==38){
s、 a=假;
s、 w=真;
s、 d=假;
s、 s=假;
}
如果(键代码==39){
s、 a=假;
s、 w=假;
s、 d=正确;
s、 s=假;
}
如果(键代码==40){
s、 a=假;
s、 w=假;
s、 d=假;
s、 s=真;
}
}
函数计算(){
如果(s.a==真){
s、 x-=1;
}
如果(s.w==真){
s、 y-=1;
}
如果(s.d==真){
s、 x+=1;
}
如果(s.s==真){
s、 y+=1;
}
x、 推(s.x);
y、 推(s.y);
}
功能性食物{
e、 x=Math.round(Math.random()*41);
e、 y=Math.round(Math.random()*41);
ctx.fillRect(e.x*u,e.y*u,u,u);
}
函数eat(){
制作食物();
e=假;
x、 推(s.x);
y、 推(s.y);
s、 l++;
}
函数ctest(){
如果(s.x*u==e.x*u&&s.y*u==e.y*u){
吃();
}
}
函数绘图(){
对于(i=0;i
正文{
背景色:黑色;
文本对齐:居中;
}
#帆布{
背景色:黑色;
边框:1px固体石灰;
利润率最高:20%;
}

指数

您需要将所有e更改为e.e

function eat() {
    makefood();
    e.e = false;
    x.push(s.x);
    y.push(s.y);
    s.l++;
    
}
function clear() {
    ctx.clearRect(x[0] * u, y[0] * u, u, u);
    if (e.e === true) {
        x.shift();
        y.shift();
    }
    e.e = true;
}

我已经改变了这一点,但它仍然没有检测到冲突,尽管这是一个很好的发现,非常感谢lol,经典的javascript错误。它只起作用两次,所以怪人意味着食物或墙壁的碰撞