我正在尝试为老式 RPG 编写碰撞地图。我使用红色 (255, 0, 0) 创建了一个应该发生碰撞的图像,并试图测试我的精灵位置 (x, y) 何时会在碰撞图上显示为红色。这是我的似乎不起作用的代码:
public boolean isBlocked(int testX, int testY) {
System.out.println(collisionMap.getColor(testX, testY)); //debug
System.out.println(Color.red); //debug
if ((collisionMap.getColor(testX, testY)) == Color.red) {
System.out.println("COLLISION OCCURRING!"); //debug
return true;
}
else {
System.out.println("NO COLLISION OCCURRING!"); //debug
return false;
}
}
当应该发生碰撞时,我在控制台中得到以下输出:
颜色 (1.0,0.0,0.0,1.0)
颜色 (1.0,0.0,0.0,1.0)
没有发生碰撞!
由于某种原因,If 语句没有将两个值视为相等,即使它们看起来是相等的。