我是小白到的Cocos2D-X,但我一直在編程很長一段時間......我想知道這是什麼代碼的一點是:boc bRet在cocos2d-X循環中做什麼?
我的困惑主要是與這一部分:
bool bRet = false; 做 {}而(0)
這裏是整個方法給一些背景:
bool GameScene::init()
{
CCLog("GameScene::init");
bool bRet = false;
do
{
//////////////////////////////////////////////////////////////////////////
// super init first
//////////////////////////////////////////////////////////////////////////
CC_BREAK_IF(! CCLayer::init());
// Initialize the parent - gets the sprite sheet loaded, sets the background and inits the clouds
MainScene::init();
// Start off as game suspended
gameSuspended = true;
// Get the bird sprite
CCSprite *bird = CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName("bird.png"));
this->addChild(bird, 4, kBird);
// Initialize the platforms
initPlatforms();
// Create the bonus sprite
CCSprite *bonus;
// Load in the bonus images, 5, 10, 50, 100
for(int i=0; i<kNumBonuses; i++)
{
bonus = CCSprite::createWithSpriteFrame(CCSpriteFrameCache::sharedSpriteFrameCache()->spriteFrameByName(bonus_image[i]));
this->addChild(bonus,4, kBonusStartTag+i);
bonus->setVisible(false);
}
// Create the Score Label
CCLabelBMFont* scoreLabel = CCLabelBMFont::labelWithString("0", "Images/bitmapFont.fnt");
this->addChild(scoreLabel, 5, kScoreLabel);
// Center the label
scoreLabel->setPosition(ccp(CCDirector::sharedDirector()->getWinSize().width/2,CCDirector::sharedDirector()->getWinSize().height - 50));
// Start the GameScene stepping
schedule(schedule_selector(GameScene::step));
// Enable the touch events
setTouchEnabled(true);
// Enable accelerometer events
setAccelerometerEnabled(true);
// Start the game
startGame();
bRet = true;
} while (0);
return bRet;
}
這個代碼來自:https://code.google.com/p/tweejump-cocos2dx/source/browse/trunk/Classes/GameScene.cpp
它是一個開源遊戲。
我明白bRet代表bool返回值,但我對一些事情感到困惑......我被這個困惑的一個原因就是爲什麼即使這樣的程序?其次,while循環如何知道bRet == false如果它只等於0 ...我錯過了什麼?
我的另一個問題是你怎麼知道什麼時候使用語法CCdataType * varName = ...,與CCdataType * pVarName = ...我知道第二個是一個指針,但也許我失蹤了一些東西......我不明白其中的差別。是第一個尊重聲明?
這就是整個代碼? 'do {} while(0)'是一個nop - 似乎缺少某些東西。 – Voo 2013-03-11 23:48:55
不,我使用它作爲一個例子,通常有很多...通常來自場景:: init()方法...我只是把它拋出去了,因爲它可能是模棱兩可的...我是cocos2d-X通過查看那裏的開源遊戲,我在其中許多人都看到過。 – 2013-03-11 23:52:05