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