ボディノードタイプとポリゴンスプライトを描画しようとしています。更新メソッドで両方のタイプを更新するとき。問題があります。
これは多角形タイプです:
BombBallSprite *bomb = BombBallSprite::spriteWithWorld(world);
bomb->getBody()->SetType(b2_staticBody);
bomb->activateCollisions();
this->addChild(bomb);
これはボディ ノード タイプです。
this->addBodyNode(node, 0);
node->release();
上記の2種類が1シーンで描画されます。
両方で更新すると、問題があります:
void HelloWorld::update(float dt)
{
if( gameState_ != kGameStatePaused )
{
world_->Step(dt, velocityIterations, positionIterations);
}
this->checkAndSliceObjects();
}
void HelloWorld::checkAndSliceObjects()
{
double curTime = getTimeTick();
for (b2Body* b = world_->GetBodyList(); b; b = b->GetNext())
{
if (b->GetUserData() != NULL)
{
PolygonSprite *sprite = (PolygonSprite*)b->GetUserData();
BodyNode *node = (BodyNode*) b->GetUserData();
if( node && (node->properties_ & BN_PROPERTY_SPRITE_UPDATED_BY_PHYSICS) ) {
-------
}
if (sprite->getSliceEntered() && curTime > sprite->getSliceEntryTime())
{
sprite->setSliceEntered(false);
}
else if (sprite->getSliceEntered() && sprite->getSliceExited())
{
this->splitPolygonSprite(sprite);
}
}
}
}
updateメソッドで以下をどのように処理するかわかりません
PolygonSprite *sprite = (PolygonSprite*)b->GetUserData();
BodyNode *node = (BodyNode*) b->GetUserData();
誰でも私を助けることができますか?