私はCocos2D-Xの初心者ですが、かなり長い間プログラミングを行ってきました...このコードのポイントは何でしょうか。
私の混乱は主にこの部分にあります:
bool bRet = false; {} while(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の戻り値を表すことは理解していますが、いくつかの点で混乱しています...これに混乱している理由の1つは、このようなプログラムでさえあるのはなぜですか。次に、whileループは、bRet == falseが0に等しい場合、どのようにしてそれを知るのでしょうか...何かが足りないのでしょうか。
私の他の質問は、CCdataType * varName = ...と、CCdataType * pVarName = ...の構文をいつ使用するかをどのように知るかです。2番目の質問はポインターですが、何かが足りない可能性があります...違いがわかりません。最初のものは服従声明ですか?