JavaScript冲突检测不支持';你好像不工作?
所以我试图在我的外星入侵者表演中设置碰撞检测。但它几乎不起作用。我的意思是我从来没有得到过有效的点击,或者JavaScript冲突检测不支持';你好像不工作?,javascript,animation,canvas,collision-detection,Javascript,Animation,Canvas,Collision Detection,所以我试图在我的外星入侵者表演中设置碰撞检测。但它几乎不起作用。我的意思是我从来没有得到过有效的点击,或者truereturn。我甚至尝试过很多不同的方法,但不管出于什么原因,我都没能得到正确的答案 碰撞检测是为玩家向外星飞船发射子弹而进行的,只是为了澄清,如果有必要的话:D 下面是碰撞检测代码:(我试图让它容易出错,希望它能成功,尽管似乎没有任何方法可行) var isCollidingWithAlien=函数(快照){ var alienImg=document.getElementById
true
return。我甚至尝试过很多不同的方法,但不管出于什么原因,我都没能得到正确的答案
碰撞检测是为玩家向外星飞船发射子弹而进行的,只是为了澄清,如果有必要的话:D
下面是碰撞检测代码:(我试图让它容易出错,希望它能成功,尽管似乎没有任何方法可行)
var isCollidingWithAlien=函数(快照){
var alienImg=document.getElementById('alien');
for(变量i=0;i<0.length;i++){
回击.x<异形[i].x+alienImg.width&&
shot.x+shot.img.width>外星人[i].x&&
shot.y<异形[i].y+alienImg.height&&
shot.y+shot.img.height>外星人[i].y;
}
};
这并不是因为代码没有被调用,或者是一些奇怪的技术错误。它永远不会变成真的
如果您想查看所有代码,这里有一个
@更新:
我们一直在玩代码,它似乎正确地注册了创建的第一个外星人,如果您查看JSFIDLE,它位于左上角。不知道为什么,尽管问题是,您只返回列表中第一个外星人的碰撞。如果对某个外星人为true,则应返回true,或者在所有外星人没有碰撞后返回false:
var isCollidingWithAlien = function(shot){
var alienImg = document.getElementById('alien');
for(var i = 0; i < aliens.length; i++){
var result = shot.x < aliens[i].x + alienImg.width &&
shot.x + shot.img.width > aliens[i].x &&
shot.y < aliens[i].y + alienImg.height &&
shot.y + shot.img.height > aliens[i].y;
if(result)
return true;
}
return false;
};
var isCollidingWithAlien=函数(快照){
var alienImg=document.getElementById('alien');
for(变量i=0;i<0.length;i++){
var result=shot.x外星人[i].x&&
shot.y<异形[i].y+alienImg.height&&
shot.y+shot.img.height>外星人[i].y;
如果(结果)
返回true;
}
返回false;
};
这很有道理!我不敢相信这是如此明显!谢谢你,伙计!
var isCollidingWithAlien = function(shot){
var alienImg = document.getElementById('alien');
for(var i = 0; i < aliens.length; i++){
var result = shot.x < aliens[i].x + alienImg.width &&
shot.x + shot.img.width > aliens[i].x &&
shot.y < aliens[i].y + alienImg.height &&
shot.y + shot.img.height > aliens[i].y;
if(result)
return true;
}
return false;
};