0

我有一个测验类型的游戏。一个问题和 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. */

此标签标识符将用于比较正确答案和所选答案,如下所示:

当用户在 Alert 中点击“YES”时,将发生以下比较:

 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 回答