스프라이트가 다른 스프라이트를 마주보고 있는지 알고 싶습니다. 예를 들어, 플레이어가 괴물의 길이 사이에서 총을 겨누고 있다면 괴물을 쏠 수있는 능력을 갖게하고 싶습니다. 도와주세요!Spritekit은 다른 SKSpriteNode를 향한 SKSpriteNode입니다
답변
플레이어 노드가 적 노드와 마주보고 있는지 확인하려면 노드 간의 각도를 계산해야합니다 (그림 1의 각도 theta 참조).
도 X에서의 차이로 나눈 값 Y의 차의 역 탄젠트 취하여 장면
계산 세타 노드 사이의 각도를 도시 한 다이어그램 :
CGFloat dx = enemy.position.x - player.position.x;
CGFloat dy = enemy.position.y - player.position.y;
theta = atan2f(dy, dx);
을
쎄타와 플레이어의 z 회전의 차이가 작은 경우 플레이어가 적과 마주합니다.
if (fabs(theta-player.zRotation) < maxDifference) {
// Do something here
}
if((isPlayerFacingLeft == true) && (_player.position.x > enemy.position.x))
{
// player is on right of object and facing towards object
}
if((isPlayerFacingLeft == false) && (_player.position.x < enemy.position.x))
{
// player is on left of object and facing towards object
}
그러나 플레이어는 조이스틱으로 제어되며 왼쪽이나 오른쪽으로 내려가는 것만이 아니라 360도 회전 할 수 있습니다. 나는 원래의 질문에서 이것을 언급해야했다. 미안합니다. – user1351956
@ user1351956 - 그럼 플레이어 또는 적의 zRotation에서 180을 뺀 절대적인 결과를 가져 와서 두 각도를 비교하고보기에 허용되는 여백을 설정하십시오. 아마 20 살 같은 것. 나머지는 위 코드와 거의 같습니다. – sangony
- 1. SKSpriteNode를 중심으로 스케일링
- 2. SpriteKit은 한 노드의 자식을 다른 노드에 추가합니다.
- 3. SpriteKit은 UIView를 닫습니다.
- 4. 메서드에서 다른 클래스에 SKSpriteNode를 추가하는 방법은 무엇입니까?
- 5. 한 점에서 다른 점을 향한 거리
- 6. SKSpriteNode를 던지는 방법?
- 7. SKNode간에 SKSpriteNode를 이동하는 방법
- 8. SpriteKit은 아래쪽을 제외한 모든면을 경계로합니다.
- 9. 중심을 향한 가중 평균치
- 10. SKSpriteNode를 어떻게 알파 마스크합니까?
- 11. SKSpriteNode를 Phone Screen으로 제한
- 12. 국가를 향한 보석 : 루비
- 13. 카메라를 향한 방향으로 이동
- 14. 사용자를 향한 OpenGL 2d 도면
- 15. GameScene에서 .SKS SKSpriteNode를 어떻게 사용합니까?
- 16. Swift에서 SKSpriteNode를 전역으로 선언하는 방법
- 17. 수평선을 따라 SKSpriteNode를 이동하는 방법
- 18. SpriteKit은 physId를 회전시킨 물리 객체를 이동합니다.
- 19. SpriteKit은 동적을 true로 설정하지 않고 충돌을 감지합니까?
- 20. 다른 클래스의 장면에 SKSpriteNode를 추가 할 수 있습니까?
- 21. iOS가 위로 향한 각도를 얻습니다
- 22. PBJVision 스위치가 전면을 향한 카메라
- 23. 안드로이드에서 핸드폰을 향한 위치 얻기
- 24. 효율적인 jQuery를 향한 다음 단계 ...?
- 25. SpriteKit을 사용하여 아크를 따라 SKSpriteNode를 회전하십시오.
- 26. 바깥쪽으로 향한 Bugzilla를 분류하는 방법은 무엇입니까?
- 27. OpenGL 플레이어가 향한 방향으로 발사체 보내기
- 28. Swift에서 SKSpriteNode를 상속 한 기본 클래스 인스턴스화
- 29. Xcode가 부모 노드에서 skspritenode를 자동으로 제거하는 방법
- 30. SKSpriteNode를 단추로 사용하여 GameScene에서 UITabBarController로 전환
기회가있을 때 이메일을 보내주십시오. 내 주소가 내 프로필 페이지에 있습니다. – sangony
감사합니다. 감사합니다. 내가 놓친 유일한 것은 둘 사이에 절대를 되돌려주는 것이었다. – user1351956