cocos2dx中default報錯:default標籤跳過“”的初始化操作
阿新 • • 發佈:2020-12-22
當我們使用switch語句時,有時候使用了定義語句,會出現default標籤跳過“”的初始化操作的報錯。
以下程式碼在case Colour部分中定義了tex, tp兩個變數,但是case Colour部分沒有用大括號{}括起來。因此報錯。
switch (color)
{
case White:
initWithFile(“map/white.png”);
setScaleX(width / 50);
break;
case Blue:
initWithFile(“map/blue.png”);
setScaleX(width / 50);
break;
case Colour:
Texture2D::TexParams tp = { GL_LINEAR, GL_LINEAR,GL_REPEAT,GL_REPEAT };
tex->setTexParameters(tp);
setTexture(tex);
setTextureRect(Rect(0, 0, width, 50));
break;
default:
break;
}
如果出現這種問題,只要在default後面加上{}大括號就可以了。
switch (color) { case White: initWithFile("map/white.png"); setScaleX(width / 50); break; case Blue: initWithFile("map/blue.png"); setScaleX(width / 50); break; case Colour: { Texture2D* tex = Director::getInstance()->getTextureCache()->addImage("map/colour.png"); Texture2D::TexParams tp = { GL_LINEAR, GL_LINEAR,GL_REPEAT,GL_REPEAT }; tex->setTexParameters(tp); setTexture(tex); setTextureRect(Rect(0, 0, width, 50)); break; } default: break; }