Android Cocos2d-x:在场景中创建对话框

Android Cocos2d-x:在场景中创建对话框,android,cocos2d-x,Android,Cocos2d X,我是Cocos2d-x的新手。 我有一个ABCScene,在这里,我想显示一个对话框或其他东西来告诉玩家他们完成了游戏级别。它还有按钮“重播”+“下一步” 我该怎么做呢 任何想法都将不胜感激。 谢谢您的帮助。您可以使用CCMenu 您可以尝试以下代码: { CCSprite *gameOverBg = CCSprite::create("ui/scoreBoard.png"); gameOverBg->setPosition(ccp(winsize.width/2,winsize.heig

我是Cocos2d-x的新手。 我有一个ABCScene,在这里,我想显示一个对话框或其他东西来告诉玩家他们完成了游戏级别。它还有按钮“重播”+“下一步” 我该怎么做呢

任何想法都将不胜感激。 谢谢您的帮助。

您可以使用CCMenu

您可以尝试以下代码:

{
CCSprite *gameOverBg = CCSprite::create("ui/scoreBoard.png");
gameOverBg->setPosition(ccp(winsize.width/2,winsize.height/2));
gameOverBg->setTag(1000);
this->addChild(gameOverBg);

CCSprite *menuItemBtn = CCSprite::create("ui/yesBtn1.png");
CCSprite *menuItemHvr = menuItemHvr->spriteWithFile("ui/yesBtn2.png");
CCMenuItemSprite *menuItem = CCMenuItemSprite::create(menuItemBtn, menuItemHvr, this, menu_selector(UIManager::menuCallbacks));
menuItem->setTag(1);
menuItem->setPosition(ccp(gameOverBg->getContentSize().width/2,gameOverBg->getContentSize().height/2-100 ));

CCLabelTTF *player = CCLabelTTF::create("User Player","Thonburi", 20);
player->setPosition(ccp(gameOverBg->getContentSize().width/2 - 100,gameOverBg->getContentSize().height/2+200 ));
player->setTag(2);
gameOverBg->addChild(player);

CCLabelTTF *ai = CCLabelTTF::create("AI Player", "Thonburi", 20);
ai->setPosition(ccp(gameOverBg->getContentSize().width/2 + 100,gameOverBg->getContentSize().height/2+200 ));
ai->setTag(3);
gameOverBg->addChild(ai);


CCLabelTTF *user = CCLabelTTF::create("000","Thonburi", 64);
user->setPosition(ccp(gameOverBg->getContentSize().width/2 - 100,gameOverBg->getContentSize().height/2+100 ));
user->setTag(2);
gameOverBg->addChild(user);

CCLabelTTF *opponent = CCLabelTTF::create("000", "Thonburi", 64);
opponent->setPosition(ccp(gameOverBg->getContentSize().width/2 + 100,gameOverBg->getContentSize().height/2+100 ));
opponent->setTag(3);
gameOverBg->addChild(opponent);
CCMenu *menuGameOver = CCMenu::create(menuItem,player,ai,user,opponent,NULL);
menuGameOver->setPosition(ccp(gameOverBg->getContentSize().width/2,gameOverBg->getContentSize().height * 0.35));
//menuGameOver->alignItemsHorizontallyWithPadding(8);
menuGameOver->setPosition(CCPointZero);
gameOverBg->addChild(menuGameOver);
}

检查我尝试过的这个问题,但它在这一行出现错误:CCMenu*menuGameOver=CCMenu::create(menuItem、player、ai、user、对手、NULL);该错误有如下内容:动态_cast(child)=0我尝试过不使用menuGameOver,它会显示在屏幕上,但按钮不起作用,很有趣,但已经非常过时,
Director::getInstance()->
没有
getActivity()
方法,也没有
CCDirector
CCDirector.sharedDirector().getActivity().runOnUiThread(new Runnable() {
        public void run() {
            AlertDialog.Builder builder = new AlertDialog.Builder(CCDirector.sharedDirector().getActivity());
            builder.setMessage("Your Message here")
                   .setCancelable(false)
                   .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                           //your Code here
                       }
                   })
                   .setNegativeButton("No", new DialogInterface.OnClickListener() {
                       public void onClick(DialogInterface dialog, int id) {
                            dialog.cancel();
                       }
                   });
            AlertDialog alert = builder.create();
            alert.show();
        }
    });