坦克游戏碰撞检测:区分左上角和右上角
在给出的代码中,通过坦克的位置和大小,判断了当前坦克与敌方坦克的碰撞情况。下面解释如何区分左上角和右上角:
-
左上角坐标判断:
- 'this.getX() >= enemyTank.getX()': 当前坦克的横坐标大于等于敌方坦克的横坐标。这判断了当前坦克是否位于敌方坦克的左侧。
- 'this.getX() <= enemyTank.getX() + 40': 当前坦克的横坐标小于等于敌方坦克的横坐标加上40。这判断了当前坦克是否位于敌方坦克的右侧(40是敌方坦克的宽度)。
- 'this.getY() >= enemyTank.getY()': 当前坦克的纵坐标大于等于敌方坦克的纵坐标。这判断了当前坦克是否位于敌方坦克的上方。
- 'this.getY() <= enemyTank.getY() + 60': 当前坦克的纵坐标小于等于敌方坦克的纵坐标加上60。这判断了当前坦克是否位于敌方坦克的下方(60是敌方坦克的高度)。
-
右上角坐标判断:
- 'this.getX() + 40 >= enemyTank.getX()': 当前坦克的横坐标加上40大于等于敌方坦克的横坐标。这判断了当前坦克右上角是否位于敌方坦克的左侧。
- 'this.getX() + 40 <= enemyTank.getX() + 40': 当前坦克的横坐标加上40小于等于敌方坦克的横坐标加上40。这判断了当前坦克右上角是否位于敌方坦克的右侧。
- 'this.getY() >= enemyTank.getY()': 当前坦克的纵坐标大于等于敌方坦克的纵坐标。这判断了当前坦克右上角是否位于敌方坦克的上方。
- 'this.getY() <= enemyTank.getY() + 60': 当前坦克的纵坐标小于等于敌方坦克的纵坐标加上60。这判断了当前坦克右上角是否位于敌方坦克的下方。
这样,通过这些条件判断,可以区分和检测当前坦克的左上角和右上角是否与敌方坦克发生碰撞。
原文地址: https://www.cveoy.top/t/topic/b4tj 著作权归作者所有。请勿转载和采集!