좋아, 그래서 나는 작은 탱크 게임을 만들고있어, 나는 탱크 탄환을 만들 필요가있다. 탱크는 움직일 수 있고, 돌릴 수 있고, 탱크의 꼭대기는 마우스로 돌릴 수있다. 이제 내 문제는 총알이 총구에서 좋은 각도와 자세로 발사되는 것처럼 보이게하려면 어떻게해야할까요? 나는 당황 스럽다.이미지를 앞으로 이동하지만 회전과 동기화 하시겠습니까?
답변
가장 쉬운 해결책은 탱크의 배럴/중앙의 시작 부분에서 총알을 시작하여 배럴과 탱크 뒤쪽에서 정렬하고 총구가 가리키는 것과 같은 방향으로 발사하는 것입니다. 특별한 회전이 필요하지 않지만 총알이 탱크 뒤에서 나타날 때까지 약간의 지연이 발생합니다.
또는 일부 수학을 수행합니다. 핫스팟을 넣거나 배럴의 시작 좌표를 기록하고 배럴을 회전 할 때이 지점을 회전시킵니다. 그러면 총알을 새로 태울 수 있습니다.
DirectX 및 OpenGL과 같은 3D API에는 "모델 공간"대 "세계 공간"이라는 개념이 있습니다. 여기서 Model Space는 세계에서의 위치와 World Space가 전체 세계와 관련된 좌표 집합과 관계없이 단일 모델과 관련하여 표현 된 좌표 집합입니다. 좌표가 개별 모델에 대해서만 의미가있는 모델 공간에서 좌표를 가져 와서 좌표가 전체 게임 세계에 의미가있는 월드 공간으로 변환하려면 월드 매트릭스라는 행렬을 통해 좌표를 곱합니다. 이는 세계의 모델 인스턴스마다 고유합니다. 그래서 기본적으로
:
이{X는 Y가 모델 공간 좌표} * {모델 인스턴스의 세계 매트릭스} =
당신은 당신의 2D이 같은 접근 방식을 적용해야 {X는 Y는 세계 공간 좌표} 경기. 탱크 스프라이트의 배럴 끝은 항상 탱크 이미지의 X, Y 좌표와 같습니다. 그러나 탱크의 이미지가 화면에 표시 될 때 (지점을 중심으로 한 회전) 약간의 변형이 진행되고 있습니다. 기본적으로 탱크 이미지의 배럴 끝에있는 X, Y 좌표를 가져와 동일한 변형을 적용하면 배럴의 끝이 X, Y 좌표가됩니다. 현재 화면에 있습니다.
그런 다음 탱크의 회전 각을 가져서 발사체가 발사 된 후 어느 각도로 가야하는지 결정합니다.
- 1. 회전과 일치하는 템플릿
- 2. CSS3 회전과 원점
- 3. 앞으로
- 4. 목록을 목록 상자와 동기화 하시겠습니까?
- 5. 사이트를 로컬 컴퓨터와 동기화 하시겠습니까?
- 6. AIR : gui를 데이터베이스와 동기화 하시겠습니까?
- 7. C/CUDA에서 3D 회전과 관련된 문제가 발생했습니다.
- 8. 앞으로 Zend_Mail_Message
- 9. 앞으로 선언
- 10. 이미지를 Android에서 캡처 하시겠습니까?
- 11. 이미지를 번들로 다운로드 하시겠습니까?
- 12. jQuery - 이미지를 갤러리에로드 하시겠습니까?
- 13. RemoteViews에서 이미지를 회전 하시겠습니까?
- 14. cloud9ide에서 이미지를 업로드 하시겠습니까?
- 15. 이미지를 JPanel에로드 하시겠습니까?
- 16. 이미지를 버튼으로 사용 하시겠습니까?
- 17. 헤더 파일 대 앞으로 선언
- 18. 이 코드를 사용하여 HyperLink와 이미지를 이동합니까? 그 이동하지만 난 모든 이미지와 하이브 링크 stright 라인에
- 19. 이미지를 업로드하고/media/tmp로 이동하지만 제품을 저장 한 후 미디어/카탈로그에 저장하지 않음 [Magento]
- 20. SVN Repo를 로컬에서 서버로 동기화 하시겠습니까?
- 21. 매주 두 개의 MediaWikis를 동기화 하시겠습니까?
- 22. AS3 : 타이머 이벤트를 실제 시간과 동기화 하시겠습니까?
- 23. .bundle_pool을 로컬 업데이트 사이트와 동기화 하시겠습니까?
- 24. 네트워크를 통해 객체를 동기화 상태로 유지 하시겠습니까?
- 25. 새 버전의 FTP를 서버에 동기화 하시겠습니까?
- 26. VS2005를 filesytem과 동기화 상태로 유지 하시겠습니까?
- 27. synchronized 절에서 동기화 개체를 다시 할당 하시겠습니까?
- 28. Microsoft Outlook을 내 데이터와 동기화 하시겠습니까?
- 29. 비트 단위로 이미지를 표시 하시겠습니까?
- 30. Three20 이미지를 저장 하시겠습니까? (닫기)
XNA를 사용하고 있습니까? – RandomEngy
탱크의 위치 및 탱크 밟음과 탱크 터렛의 회전을 관리하는 방법을 보여주는 코드를 게시 하시겠습니까? –
그리고이 2D 또는 3D입니까? 그들이 학교에서 측정법을 가르쳐 줬을 때주의를 기울였습니까? –