나는 cocos2d를 사용하여 미로 게임을 가지고있다. "friend"스프라이트를 저장할 수있는 하나의 메인 스프라이트가있다. "friend"스프라이트가 메인 스프라이트와 충돌하면, "friend"스프라이트가 모든 스프라이트를 따라 가게된다. 이제 "친구"스프라이트를 정적 거리와 부드러운 움직임으로 주 스프라이트를 따르는 방법을 알지 못합니다. 메인 스프라이트가 올라가면 "친구"가 메인 스프라이트 뒤에있을 것입니다. 메인 스프라이트가 왼쪽으로 이동하면 "friend"스프라이트가 메인 스프라이트 오른쪽에 표시됩니다. 나를 도와 주시고 일부 코드를 공유하십시오 ...Cocos2d 다른 스프라이트를 따라 하나의 스프라이트를 만드는 방법은 무엇입니까?
답변
기본 스프라이트의 위치를 friend 스프라이트의 대상으로 사용하여 다음과 같은 동작을 구현할 수 있습니다. 이것은 분리 (최소 거리 유지), 응집력 (최대 거리 유지) 및 여유 (부드럽게 만들기)를 구현하는 것입니다.
정확한 알고리즘 (및 기타 자세한 내용)은 wonderful behavior animation paper by Craig Reynolds입니다. 또한 개별 기능에 대한 비디오와 예제 소스 코드 (C++)가 있습니다.
당신이 필요로하는 알고리즘은 (는 여러 간단한 것들의 조합이다) Leader following
편집입니다 : 내가 볼 수있는 소스 코드 here와 here와 신문에 언급 된 알고리즘이 간단 구현을 발견했다. 무리 짓기 (주로 중심을 따르는 것)에서 단일 리더를 따라갈 때까지 약간 재결합해야합니다. 언어는 Processing과 유사하며 java와 유사한 의사 코드와 유사하므로 이해가 문제가되지 않아야합니다. 앞에서 언급 한 C++ sourcecode도 다운로드 할 수 있지만 리더에게 다음과 같은 기능은 명시 적으로 제공하지 않습니다.
나는 cocos2d 구현을 알고 있지 않습니다.
나에게 몇 가지 코드를 공유 할 수 있습니까 ??? 예, 정확히 말하지만 알고리즘이나 코드를 찾을 수 없습니다 –
@Alex 답변에 대한 몇 가지 소스 링크가 추가되었습니다. – kostja
나는 잘 작동하는 간단한 해결책을 가지고 있습니다. cocos2d 문서의 레슨 2를 시작하십시오 (Your first game). 터치 이벤트를 구현 한 후 cocosGuy를 따라 seeker1을 설정하려면 다음 코드를 사용
- (void) nextFrame:(ccTime)dt {
float dx = cocosGuy.position.x - seeker1.position.x;
float dy = cocosGuy.position.y - seeker1.position.y;
float d = sqrt(dx*dx + dy*dy);
float v = 100;
if (d > 1) {
seeker1.position = ccp(seeker1.position.x + dx/d * v *dt,
seeker1.position.y + dy/d * v *dt);
} else {
seeker1.position = ccp(cocosGuy.position.x, cocosGuy.position.y);
}
}
아이디어는 모든 단계에있다, 추종자는 일정한 속도로 리더쪽으로 이동해야합니다. 지시선 방향은 코드에 표시된대로 계산할 수 있습니다.
- 1. 스프라이트를 만드는 방법은 다른 스프라이트를 따르는가?
- 2. XNA에서 또 다른 스프라이트를 따르는 스프라이트를 만드는 방법은 무엇입니까?
- 3. 계속해서 스프라이트를 만드는 법 Cocos2d?
- 4. 화면에서 스프라이트를 이동하는 방법은 무엇입니까? cocos2d
- 5. 스프라이트를 터치하여 회전시키는 방법 Cocos2d
- 6. cocos2d 스프라이트를 미리 렌더링하는 방법
- 7. CoreGraphics를 사용하여 스프라이트를 만드는 방법 iOS Cocos2d
- 8. Cocos2d - 하나의 스프라이트를 다른 스프 라이트 주위로 궤도/회전
- 9. cocos2d android에서 다른 스프라이트에 라벨이나 스프라이트를 추가하는 방법은 무엇입니까?
- 10. iPhone Cocos2D - 스프라이트를 회전하는 손가락
- 11. Cocos2d, 스프라이트를 터치 위치로 이동
- 12. 안드로이드에서 스프라이트를 만드는 법
- 13. 블리트 스프라이트를 그리드로 만드는 방법은 무엇입니까?
- 14. cocos2d에서 스프라이트를 켜는 방법은 무엇입니까?
- 15. 스프라이트를 만드는 방법
- 16. (Cocos2d) 단일 장면 및 레이어에 선택적 스프라이트를 구현하는 방법은 무엇입니까?
- 17. Cocos2D : 특정 영역에서 스프라이트를 이동 한 것을 감지하는 방법은 무엇입니까?
- 18. 불규칙한 모양의 스프라이트를 만드는 법?
- 19. NSImage로 스프라이트를 그리는 방법은 무엇입니까?
- 20. 스프라이트를 만드는 방법 다른 스프라이트 뒤에서 이동
- 21. Cocos2d, iOS : 캐시에서 스프라이트를 제거하는 올바른 방법은 무엇입니까?
- 22. cocos2d에서 스프라이트를 올바르게로드하는 방법은 무엇입니까?
- 23. cocos2d : 스프라이트를 화면의 중심으로 향하도록 회전합니다.
- 24. Cocos2d-x에서 스프라이트를 끝내면 확인하는 방법?
- 25. Compass를 사용하여 여러 폴더에서 하나의 스프라이트를 생성하는 방법은 무엇입니까?
- 26. spritesheet에 스프라이트를 겹쳐 놓기
- 27. cocos2d에서 스프라이트를 오버랩하는 방법
- 28. SpaceManager를 사용하는 동안 정적 스프라이트를 cocos2D의 다른 스프라이트로 만드는 방법
- 29. cocos2d에서 무작위로 다른 스프라이트를 표시
- 30. Cocos2D에서 스프라이트를 구부릴 수 있습니까?
box2d, chipmunk 또는 일반 cocos2d를 사용 하시겠습니까? 일반 cocos2d라면 애니메이션을 사용하여 이동하거나 픽셀 단위로 이동 하시겠습니까? –