A b2BodyDef
используется для определения информации о теле в целом, такой как положение и вращение. По сравнению с другой информацией, которая вам требуется для b2Body
, такой как трение и повторное позиционирование , которое определяется для каждого прибора с использованием b2Fixtures
. b2Body
- это объединение определения тела и хотя бы одного приспособления.
Что касается создания тела из предопределенного прямоугольника, я бы посоветовал использовать setAsBox:
при условии, что вы используете b2PolygonShape
.
Способ, которым я обычно выполняю соединение этих двух, состоит в том, чтобы создать класс с именем BodyNode
, который имеет ivars b2Body
и 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.
}