나는 움직이는 표적에서 총알을 발사하는 간단한 Java 게임을 가지고 있습니다. 두 개체 모두 GRect입니다. 나는 UFO와 총알이 서로 교차 할 때 확인 충돌 감지 기능을 가지고 있지만, 여기에 이상한 것들이다 :Java ufo 게임에서 충돌 감지
private void collideWithUFO() {
if (bullet != null) {
GObject collObj = getElementAt(ufo.getX(), ufo.getY());
if (collObj == bullet) {
remove(ufo);
remove(bullet);
ufo = null;
bullet = null;
}
}
}
를 ..하지만 내가 다음과 같은 총알에 getElementAt
를 변경하는 경우, 체크 :
이 작동
private void collideWithUFO() {
if (bullet != null) {
GObject collObj = getElementAt(bullet.getX(), bullet.getY());
if (collObj == ufo) {
remove(ufo);
remove(bullet);
ufo = null;
bullet = null;
}
}
}
내가 처음 UFO 또는 총알을 선택하든 상관해야하지만, 분명히이되지 않습니다 : UFO와 관련하여,이 충돌을 감지하지 못합니다. 자, 이제 WEIRDER의 무언가가 있습니다. GRect에서 GOval로 총알을 변경하면 갑자기 두 번째 형태의 충돌 감지가 작동합니다. 저는 Java 놈입니다. 그래서이 행동이 이해가되는지 알려주세요. UFO가 최상위 그래픽 요소의 경우
감사합니다. 이제 알 수 있습니다. 이것은 총알을 GRect에서 GOval로 바꾸면 UFO 객체 아래에도 놓이게됩니다. –