我是 Cocos2D-X 的菜鸟,但我已经编程了很长时间......我想知道这段代码的意义是什么:
我的困惑主要在于这部分:
布尔 bRet = 假;做{}同时(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 代表布尔返回值,但我对一些事情感到困惑......我对此感到困惑的一个原因是为什么还要像这样的程序?其次,当 bRet == false 是否等于 0 时,while 循环如何知道......我错过了什么吗?
我的另一个问题是你怎么知道何时使用语法 CCdataType* varName = ..., vs. CCdataType *pVarName = ... 我知道第二个是指针,但也许我错过了一些东西......我不明白其中的区别。第一个是尊重声明吗?