【问题标题】:showing popup with cocos2d v3使用 cocos2d v3 显示弹出窗口
【发布时间】:2014-08-22 12:45:04
【问题描述】:

我需要知道用 cocos2d v3 实现弹出窗口的最佳方法是什么。 我目前为我的弹出窗口创建了一个 CCNode 类,它的背景是一个 200x300 的精灵,带有各种 CCButton 和图像,但我不确定这是正确的方法。

我解释了我是如何实现它的:在我的 GameScene(主场景)上,当游戏结束时,我想显示一个弹出窗口来询问用户是否想要使用其他生命或结束游戏,所以我作为一个孩子添加我的 CCNode 类 ContinuePopup:

[self addChild:[ContinuePopup node] z:50];

我没看错,在这个弹出窗口中我可以选择是或否... 如果我选择否,我希望在我的 ContinuePopup.m 中显示游戏弹出窗口(另一个 CCNode 类):

GameScene *gm = [[GameScene alloc]init]; 
[gm viewGameOver];
[self removeFromParentAndCleanup:YES]; 

它在 GameScene 上调用 viewGameOver 方法:

- (void)viewGameOver { 
[self addChild:[GameOverPopup node] z:400]; }

我的问题是我没有看到 GameOverPopup!它没有出现! 它正确地消失了 ContinuePopup 但 GameOverPopup 没有出现!

【问题讨论】:

    标签: iphone ios7 cocos2d-iphone


    【解决方案1】:

    您可能只是没有呈现新场景吗?

    GameScene *gm = [[GameScene alloc]init]; 
    [gm viewGameOver];
    
    // Try this:
    [self.view presentScene:gm];
    

    【讨论】:

    • 我的场景已经呈现出来了,在弹窗下面!它进入方法viewGameOver(我看到断点)但它没有显示GameOverPopup ...我不必显示另一个场景,我必须显示另一个弹出窗口(CCNode类)...我的问题是,如果我显示它们单独正常工作并出现,但一个接一个,第二个没有出现
    • 鉴于您发布的代码片段,您所做的是创建一个新的 GameScene 实例,然后将 GameOverPopup 实例添加到这个新的 GameScene 实例,然后您不呈现 GameScene。确认您确实打算将 GameOverPopup 添加到 GameScene 的新实例,而不是现有和当前呈现的场景。
    • 不,我想将 GameOverPopup 添加到 GameScene 的现有实例中,但我不知道正确的方法是什么,因为我必须从 ContinuePopup 类调用 viewGameOver 方法
    • 在 ContinuePopup 实例中,您可以通过 self.scene 访问场景实例,所以这应该可以工作:[self.scene addChild:[GameOverPopup node] z:400];
    • 啊好吧!我不知道我能做到这一点,所以我也可以从同一个班级中删除 ContinuePopup 孩子......好的完美......非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    相关资源
    最近更新 更多