0

クイズ形式のゲームをしています。1 つの質問と 4 つの可能な回答。回答は、Web サービスの JSON ファイルから動的に取得されます。1 つの質問が CCLabelTTF として表示され、4 つの回答 (a、b、c、d) も CCLabelTTF として表示されます。ここで、ユーザーが選択/タップした回答を確認するためのアラートを表示する必要があります。- 最初の質問: どうすれば答え a、b、c、d を検出できますか? ユーザーが触れた答えはどれですか?- 第二に、これらの回答のそれぞれに一意のプロパティを割り当てるにはどうすればよいですか? 私はこのようにしたいということです:

CCLabelTTF *answerA = [CCLabelTTF labelWithString:@"This will be dynamically set" fontName:@"verdana" fontSize:25];

answerA.tag = @"Here goes the unique Identifier for answerA"; /* Is it okay with tag or is there some more good process? I am thinking to do answerA.tag = 0; 0 for incorrect and 1 for correct answers. */

このタグ識別子は、次のように正解と選択された回答を比較するために使用されます。

ユーザーがアラートで「はい」をタップすると、次の比較が行われます。

 if(answerA.tag == @["movies"][i]@["answer"][i]@["status"]) // @["movies"][i]@["answer"][i]@["status"] will either have 0 or 1.

このゲームの別の優れたソリューションはありますか? テキスト ラベルの代わりにボタンを使用するとどうなるでしょうか。助けてください。

4

1 に答える 1

1

CCMenu を使ったほうがいいでしょう。

bool ControlsLayer::init() 
{
    CCTTFLabel *ttflabel = [CCLabelTTF labelWithString:@"This will be dynamically set" fontName:@"verdana" fontSize:25]
    CCMenuItemLabel *label = [CCMenuItemLabel initWithLabel: ttflabel];

    CCMenu *menu = CCMenu::menuWithItems(label, NULL);
    menu->setPosition(ccp(windowSize.width/2, controlsLabel->getPosition().y - controlsLabel->getContentSize().height));

    this->addChild(menu, 2);

    return true;
}

void ControlsLayer::backButtonAction(CCObject* pSender)
{
}

https://github.com/clawoo/AsteroidsCocos2D-x/blob/master/Classes/ControlsLayer.cpp

于 2012-12-28T18:12:24.040 に答える