1
我已经成功地创建了userData的结构,但是当我使用如何在UserData结构中包含/检索/设置正文的位置?
ballBodyDef.userData = _ball;
切换到
MyBodyData *bodyData = new MyBodyData();
bodyData->someNumber = 4;
bodyData->sprite = _ball;
_body->SetUserData(bodyData);
以下失败:
for(b2Body *b = world->GetBodyList(); b; b=b->GetNext()) {
{
if (b->GetUserData() != NULL)
{
CCSprite *myActor = (CCSprite*)b->GetUserData();
myActor.position = CGPointMake(
b->GetPosition().x * PTM_RATIO,
b->GetPosition().y * PTM_RATIO);
myActor.rotation = -1 * CC_RADIANS_TO_DEGREES(b->GetAngle());
}
}
我敢肯定,这与编译器无法找到/设置myActor的位置这一事实有关,但我不知道如何使用struct包含/检索/设置正文的位置...
是的!在我还没有完全理解的情况下,我还没有意识到static_cast,因此我能够回答并处理它。最终结果为: for(b2Body * b = world-> GetBodyList(); b; b = b-> GetNext()){ {if(b-> GetUserData()!= NULL) { MyBodyData * data = static_cast(b-> GetUserData()); int temp = data-> someNumber; CCSprite * myActor = data-> sprite; myActor.position = CGPointMake( b-> GetPosition()。x * PTM_RATIO, b-> GetPosition()。y * PTM_RATIO); myActor.rotation = -1 * CC_RADIANS_TO_DEGREES(b-> GetAngle());}}} –
2012-02-23 19:10:33