我正在使用2d布尔数组来检测碰撞。对于我的玩家碰撞,碰撞检测可以完美地工作,但是当Spell对象碰撞检测检查它总是检测到真时。我的球员站在他的下方,一切都是真的,但在上面是假的。就像Terraria一样,你下面的一切都是真的。然而,当我的法术在空中时,他们正在检测到真实。以下是检测地面碰撞的代码,它会检查spellList
网格位置中的咒语在哪里以及是否为真。
public void update(){
this.spellList = player.getSpells();
for(int i = 0; i < spellList.size(); i++){
if(grid.getGrid()[(int) spellList.get(i).getGridPosition().x]
[(int) spellList.get(i).getGridPosition().y]){
spellList.get(i).react();
System.out.println("true");
}else
System.exit(0);
}
这看起来很简单但是在下面的图像中,该拼写返回true并且System.exit(0);
永远不会被调用。你可以知道什么是真的,因为有一个白框勾勒出来。
Examplle Image
我不确定为什么当网格位置不是真的时会调用法术反应方法