古い学校の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ステートメントは、2つの値が等しいように見えても、等しいと見なしていません。