我正在尝试绘制身体节点类型以及多边形精灵。当我要在更新方法上更新这两种类型时。我有问题。
这是多边形类型:
BombBallSprite *bomb = BombBallSprite::spriteWithWorld(world);
bomb->getBody()->SetType(b2_staticBody);
bomb->activateCollisions();
this->addChild(bomb);
这是身体节点类型:
this->addBodyNode(node, 0);
node->release();
以上两种类型是在单个场景中绘制的。
当我更新两者时,我遇到了问题:
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);
}
}
}
}
我不知道如何处理更新方法的以下问题
PolygonSprite *sprite = (PolygonSprite*)b->GetUserData();
BodyNode *node = (BodyNode*) b->GetUserData();
任何人都可以帮助我吗?