【问题标题】:CCDirecter replace scene with UIView / nibCCDirecter 用 UIView / nib 替换场景
【发布时间】:2012-10-15 16:42:34
【问题描述】:

我想做的是让 Cocos2d 共享导演用 UIKit 中的 UIView 替换当前场景(可能从笔尖加载)。这个想法是在 Cocos2d 和 UIKit 之间进行干净的转换。

我已经看到了一些解决这个问题的方法。其中大多数是关于在同一场景中混合 UIKit 和 Cocos2d,我想将它们分开。一种方法是添加 UIView 的实例作为导向器 GLView 的子视图。像这样:

UIView* cocosView = [[CCDirector sharedDirector] openGLView];
[cocosView addSubview:t];

Overlaying a UIView onto a Cocos layer?

这可行,但我必须先创建一个空白场景并过渡到该场景,然后添加 UIView,然后将其删除并过渡到任何其他场景。这是模块化的,但有点混乱。

更好的方法是将 UIView 包装到节点中。就像是: http://www.cocos2d-iphone.org/forum/topic/6889

有官方的 cocos2d 扩展吗?如果可能的话,我还想从故事板/笔尖加载 UIView。非常感谢。

【问题讨论】:

    标签: iphone cocos2d-iphone uikit


    【解决方案1】:

    用 UIKit 中的 UIView 替换当前场景

    如果您使用的是 cocos2d 1.x:http://www.raywenderlich.com/4817/how-to-integrate-cocos2d-and-uikit

    如果你使用 cocos2d 2.x:CCDirector 是 UIViewController 的子类,所以你可以使用usual methods。有一点bug 在停止/开始动画后计算增量时间,但很容易修复。

    【讨论】:

    • 出色的@Kreiri,它是 UIViewController 的子类。我错过了那条关键信息。我使用的是 2.0,所以当我回到我的 mac 时,我会尝试将我的 CCDirector 实例移动到导航控制器中,并使其成为窗口的根/初始视图。那么应该是无缝的。
    • 感谢有关动画问题的链接,可能为我节省了未来的谷歌搜索。
    • @Kreiei Interface Builder 没有将 CCDirector 识别为 UIViewController 的子类有什么原因吗?我可以很容易地在代码中做到这一点,只是好奇。
    • 您确定要为视图控制器而不是视图设置自定义类吗?
    • 是的 ;) CCDirector 或它的自定义子类不显示。我以编程方式将它推送到导航控制器堆栈上,一切都像魅力一样。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-28
    • 1970-01-01
    • 2017-04-19
    相关资源
    最近更新 更多