#iphone #ios #cocos2d-iphone #box2d
#iPhone #iOS #cocos2d-iphone #box2d
Вопрос:
У меня есть 2 вопроса с b2Body:
- В чем разница между b2Body и b2BodyDef?
- Как мне добавить b2Body в CCScene с координатами из CGRect, которые я уже закодировал? Также, как мне добавить к нему userData, чтобы я мог сохранить ссылку на это?
Спасибо!
Ответ №1:
A b2BodyDef
используется для определения информации о теле в целом, такой как положение и поворот. По сравнению с другой информацией, необходимой для a b2Body
, такой как трение и изменение размера, которая определяется для каждого устройства с использованием b2Fixtures
. Это b2Body
объединение определения тела и, по крайней мере, одного элемента.
Что касается создания тела из предопределенного rect, я бы посоветовал использовать setAsBox:
предположение, что вы используете b2PolygonShape
.
Способ, которым я обычно выполняю объединение двух, — это создать вызываемый класс BodyNode
, который имеет значения a b2Body
и a CCSprite
. Назначьте либо BodyNode
, т. е. self
, либо спрайт в качестве userData
и обновите их следующим образом:
-(void) onEnter
{
[self scheduleUpdate];
[super onEnter];
}
-(void) update:(ccTime) dt
{
//Update the position of the sprite to the position of the body
//Update the rotation of the body to the rotation of the sprite. Take care to note that the rotation of the sprite is in degrees whereas the rotation of the body is in radians.
}