簡體   English   中英

Cocos2d的Objective C指針問題

[英]Objective C Pointers problem with cocos2d

我試圖做的是為我擁有的任何對象動態地初始化b2Body。 這是代碼:

b2Body * mallet1;

[self setMalletProperties: &blockBodyDef : mallet1];

-(void) setMalletProperties:(b2BodyDef *)body :(b2Body *) mallet {
body->type = b2_dynamicBody;

mallet = world->CreateBody(body);
b2Vec2 newLocation = b2Vec2([self getScreenSize].width/2/PTM_RATIO,[self getScreenSize].height * .2833/PTM_RATIO);
//b2Vec2 newLocation = b2Vec2(x, y);
mallet->SetTransform(newLocation,0.0f);

mallet->SetFixedRotation(true);

b2FixtureDef fixtureDef;
b2CircleShape dynamicCircle;
dynamicCircle.m_radius = 0.85;        
fixtureDef.shape = &dynamicCircle;  
fixtureDef.restitution =0.1f;
fixtureDef.density = 1.0f;
fixtureDef.friction = 0.0f;
mallet1Fixture = mallet->CreateFixture(&fixtureDef);

if ([self getScreenSize].width == 768) {
    dynamicCircle.m_radius = 1.75;
}
}

它無法正常工作,導致其無法將我創建的主體放入變量mallet1中。 我究竟做錯了什么?

謝謝

嘗試這個:

-(void) setMalletProperties:(b2BodyDef *)body :(b2Body **) mallet {
body->type = b2_dynamicBody;

*mallet = world->CreateBody(body);
 ...
}

您當前的代碼無法提供再次訪問槌的相同參考的方法。

或者,您可以像這樣更改方法簽名-(b2Body*) setMalletProperties:(b2BodyDef *)body並包含一個return mallet; 在末尾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM