Javascript冲突检测和从数组中删除
我正在用HTML编写一个版本的太空入侵者,激光和敌人之间的碰撞检测不起作用。我在开发者控制台中没有看到任何错误Javascript冲突检测和从数组中删除,javascript,html,Javascript,Html,我正在用HTML编写一个版本的太空入侵者,激光和敌人之间的碰撞检测不起作用。我在开发者控制台中没有看到任何错误 // Returns whether or not an object is empty, i.e., does not exist. function isEmpty(obj) { for(var key in obj) { if(obj.hasOwnProperty(key)) return false; } ret
// Returns whether or not an object is empty, i.e., does not exist.
function isEmpty(obj) {
for(var key in obj) {
if(obj.hasOwnProperty(key))
return false;
}
return true;
}
function laserCollision() {
for(var i = enemyArray.length - 1; i >= 0; i--) {
for(var j = playerLaserBeamsArray.length-1; j >= 0; j--) {
// make sure not to access an object which does not exist.
if(isEmpty(playerLaserBeamsArray[j])) break;
if(isEmpty(enemyArray[i])) break;
// check if laser beam is at correct y coordinate
if(playerLaserBeamsArray[j].getTopY() >= enemyArray[i].getBottomY() && playerLaserBeamsArray[j].getBottomY() <= enemyArray[i].getTopY()) {
// check if laser beam is between the enemy's furthermost left and right x-coordinates
if(playerLaserBeamsArray[j].getLeftX() <= enemyArray[i].getLeftX() && playerLaserBeamsArray[j].getRightX() <= enemyArray[i].getRightX()){
score ++;
enemyArray.splice(i, 1);
}
}
}
}
}
//返回对象是否为空,即不存在。
函数isEmpty(obj){
for(obj中的var键){
if(对象hasOwnProperty(键))
返回false;
}
返回true;
}
函数laserCollision(){
对于(var i=enemyArray.length-1;i>=0;i--){
对于(var j=playerLaserBeamsArray.length-1;j>=0;j--){
//确保不要访问不存在的对象。
如果(isEmpty(playerLaserBeamsArray[j])中断;
如果(isEmpty(enemyArray[i])中断;
//检查激光束是否处于正确的y坐标
if(playerLaserBeamsArray[j].getTopY()>=enemyArray[i].getBottomY()&&playerLaserBeamsArray[j].getBottomY()if(playerLaserBeamsArray[j].getLeftX()