javascript - 检查碰撞功能是否匹配同一位置的 2 个物体

标签 javascript

完整代码here

我注意到,如果同一位置有两个错误并且玩家发生碰撞,则会计算两次死亡,因为从技术上讲,它与两个不同的物体碰撞,我如何更改此设置以一次检查碰撞 1,或者只计算碰撞1 人死亡?

checkCollision(playerl,playerr) {
  //check collision for each bug
  for (var i = 0; i < 5; i++) {
        var thisEnemy = allEnemies[i];
        if (
           thisEnemy.leftLimit < player.rightLimit &&
           thisEnemy.rightLimit > player.leftLimit &&
           thisEnemy.upperLimit > player.lowerLimit &&
           thisEnemy.lowerLimit < player.upperLimit) {
           console.log("collision");
           //console.log(player.lowerLimit, player.upperLimit, thisEnemy.lowerLimit, thisEnemy.upperLimit)
          player.loseLife();
       }
    }
};

最佳答案

为什么不使用setTimeout来实现死一次后短时间内无敌呢?

//somewhere in your code
var dying = false;

checkCollision(playerl,playerr) {
  //check collision for each bug
  for (var i = 0; i < 5; i++) {
        var thisEnemy = allEnemies[i];
        if (
            thisEnemy.leftLimit < player.rightLimit &&
            thisEnemy.rightLimit > player.leftLimit &&
            thisEnemy.upperLimit > player.lowerLimit &&
            thisEnemy.lowerLimit < player.upperLimit &&
            dying==false) {

            console.log("collision");
            dying=true; // dying is true, so we wont end up in this block again
            setTimeout(function(){
                dying=false; //after 500 milliseconds we set dying to false so our player has the ability to die again!
            },500);
            player.loseLife();
       }
    }
};

关于javascript - 检查碰撞功能是否匹配同一位置的 2 个物体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50603465/

相关文章:

Javascript 正则表达式移动设备音频替换

javascript - HTML5游戏对象及分享方法

javascript - FB Graph API : Posting as a page, 到不同页面

javascript - JSON 错误 :Missing ] after element list

javascript - 扩展 ngClick 以添加附加功能

javascript - 如何根据从下拉列表中选择的选项注入(inject)指令模板

JavaScript/Javabean : co-operation not working for counter

javascript - 从 2 个不同的属性获取 MySql 表中的项目

javascript - ng-show 语法错误 : "token ' false' is at column {2} of the expression [{3}] starting at [{4}]"

javascript - jQuery 破坏其他 javascript