我的当前项目出了问题。
我想做的是让b2Body反复上下移动。我已经知道如何使用CCSprite执行此操作:
[paddle runAction:[CCRepeatForever actionWithAction:
[CCSequence actions:
[CCMoveTo actionWithDuration:1.0 position:ccp([paddle position].x,[paddle position].y+40)],
[CCMoveTo actionWithDuration:1.0 position:ccp([paddle position].x,[paddle position].y)],
nil
]]];
有人可以帮我用b2Body做同样的事情吗? 提前谢谢!
答案 0 :(得分:0)
您必须自己实施序列,其中包括:
你或许可以扩展CCMoveTo来创建自己的类......我会先调查一下。
答案 1 :(得分:0)
我知道了,老兄 在几乎解释中,每个CCsprite移动都取决于b2body移动 - 移动被置于'tick'方法 - 在我的情况下,我反过来这样,我根据CC方法移动b2body在tick方法,所以我给这些代码在tick方法:
for(b2Body *b = _world->GetBodyList(); b; b=b->GetNext()) {
if (b->GetUserData() != NULL) {
CCSprite *sprite = (CCSprite *)b->GetUserData();
if (sprite.tag == 4 || sprite.tag == 5) {
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);
}
}
}