제 Box2d 게임에서 게임 루프에서 CCSprite 위치를 업데이트해야 제대로 작동합니다. 나는 Box2D 문서를 통해 어떤 API가 b2Body 좌표를 얻는지를 보았지만 아무 것도 보지 못했고 이것이 분명하지 않은 것으로 보인다. 각 CCSprite를 수동으로 이동해야합니까, 아니면 모든 CCSprite를 화면의 b2Bodys로 쉽게 이동할 수 있습니까?b2Body가 움직일 때 CCSprite 위치를 업데이트 하시겠습니까?
누구든지이 작업을 수행하는 방법에 대해 알고 있습니까?
감사합니다.
편집 1 : 이 코드는 내 세계의 모든 스프라이트를 해당하는 b2Body로 업데이트하겠습니까? 그리고 이것은 x와 y 축과 회전이 올바로 작동할까요? [: @selector (:) 진드기 자체 일정]이
같은 틱 방법이 초기화 수업 일정에
:
for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext()) {
if (b->GetUserData() != NULL) {
CCSprite *sprite = (CCSprite *)b->GetUserData();
b2Vec2 b2Position = b2Vec2(sprite.position.x/PTM_RATIO,
sprite.position.y/PTM_RATIO);
float32 b2Angle = -1 * CC_DEGREES_TO_RADIANS(sprite.rotation);
b->SetTransform(b2Position, b2Angle);
}
}
이 질문을 참조하십시오 http://stackoverflow.com/questions/2336825/how-to-set-the-position-of-a-sprite-within-a-box2d-body – LearnCocos2D
알았어. 그래서이 방법은 그것을 수동으로하고 있습니다, 거기에 자동으로 그것을 할 수있는 방법이 있습니까 아니면 그렇게하지 말아야합니까? –
자동으로 신경 쓰지는 않지만 SpriteClass가 없습니다 –