CCSprite があります (b2body があります)。スコープは、ボディと一緒にある場所に移動して戻るスプライトを作成することです。
この方法で b2body を作成します。
if (_body)
{
_world->DestroyBody(_body);
}
b2BodyDef bd;
bd.type = b2_kinematicBody;
_body = _world->CreateBody(&bd);
b2PolygonShape shape;
b2Vec2 _p1, _p2 , _p1sub,_p2sub;
_p1 = b2Vec2(point1.x/PTM_RATIO,point1.y/PTM_RATIO);
_p2 = b2Vec2(point2.x/PTM_RATIO,point2.y/PTM_RATIO);
shape.SetAsEdge(_p1, _p2);
_body->CreateFixture(&shape, 0);
ボディを作成したら、アクションを初期化します。
id a1 = [CCMoveBy actionWithDuration:1 position:ccp(0,-self.position.y+destinationPoint.y)];
id action2 = [CCRepeatForever actionWithAction:
[CCSequence actions: [[a1 copy] autorelease], [a1 reverse], nil]
];
[self runAction:action2];
各フレームで、体の位置を更新します
_body->SetTransform(b2Vec2(self.position.x/PTM_RATIO,self.position.y/PTM_RATIO), 0);
問題は、両方とも描画されていますが、スプライトは正しい位置にありますが、ボディはそうではありません。動きは一貫している
参考までに、ゲーム全体で PTM_RATIO を使用しているため、これは問題ではありません