. 당신이하고 싶은 것은 플레이어가 속한 동물과의 관계를 결정하는 것입니다.
하자 먼저 당신이 말했듯이
enum Direction { NORTH, EAST, SOUTH, WEST };
을 캡슐화하는 열거 형을, 당신은 플레이어가 동물의 왼쪽 또는 오른쪽에 있는지 여부를 확인할 수 있습니다.
if(player.getX() > animal.getX()) {
animal.setDirection(Direction.EAST);
} else {
animal.setDirection(Direction.WEST);
}
마찬가지로 Y 좌표와 북/남 방향으로 동일한 작업을 수행 할 수 있습니다.
그럼 이제 첫 번째 수표 또는 두 번째 수표 중 어느 것을 사용해야하는지 어떻게 알 수 있습니까? 음, 잠깐 생각 해봐. 네가있는 곳의 "북쪽"에 살고 있다면 아마 북쪽이 아니라 북쪽 - 확실히, 동쪽보다 북쪽 일 것이다. 그래서 좋은 체크는 "지배적 인 방향이 무엇입니까?"즉. 네가 동쪽에있는 것보다 북쪽에 살면 너는 북쪽에 살고있다. 그럼 어떻게 확인하나요? 글쎄, 당신은 당신이 당신의 장소로 남/북을 여행해야하는 거리가 당신이 동/서를 여행해야하는 거리보다 크다고 말합니다. 코드에서 :
if(Math.abs(animal.getX() - player.getX()) > Math.abs(animal.getY() - player.getY())) {
//More east-west than north-south - do EAST-WEST check
} else {
//More north-south than east-west - do NORTH-SOUTH check
}
그래서, 결합이 최종 결과 제공 :
if(Math.abs(animal.getX() - player.getX()) > Math.abs(animal.getY() - player.getY())) {
//More east-west than north-south - do EAST-WEST check
if(player.getX() > animal.getX()) {
animal.setDirection(Direction.EAST);
} else {
animal.setDirection(Direction.WEST);
}
} else {
//More north-south than east-west - do NORTH-SOUTH check
if(player.getY() > animal.getY()) {
animal.setDirection(Direction.NORTH);
} else {
animal.setDirection(Direction.SOUTH);
}
}
을 그리고 당신은 완료! 더 이상의 질문이 있으면 알려주세요.
* "제게 뭔가를 말하면 알려주세요."* 질문을하는 것이 합리적이라는 것을 알고 있습니다. 귀하의 질문은 무엇인가? 또한 .. * "각도를 사용하여 어떤 애니메이션을 실행해야할지 결정했지만 실패했습니다."* SSCCE에서 수행 한 작업 (최선의 시도)을 시도해보십시오. 코드는 말보다 더 크게 말합니다. –
좋아, 나는 사람들이 나 같은 질문을 자주하는 것을 보았 기 때문에 당신이 어떻게 느끼는지 안다. 그러나 나는 그것을 더 잘 설명하는 방법을 모른다. 엔티티 (몹)에 대해 위/아래/왼쪽/오른쪽에 대해 4 가지 애니메이션이 있고 엔티티가 플레이어를 항상 보길 원합니다. 나는 플레이어에게 보이는 방향을 감지하는 방법을 모른다. – IvanDonat
힌트 : "플레이어에게 보이는 방향을 감지하는 방법" 질문 일뿐만 아니라이 페이지에 나타나는 첫 번째 질문입니다. 게시물을 편집하여 소음을 삭제하십시오. –