【问题标题】:Importance of Cocos2D CCScenes?Cocos2D CCScenes 的重要性?
【发布时间】:2011-09-24 01:51:05
【问题描述】:

我最近关注了 Ray Wenderlich 的 Cocos2D 教程,将 Cocos2D 放入 UIKit 应用程序中。我目前只在我的一个 UIView 中使用 Cocos2D。在教程中,他使用了 CCScene,它是项目中特定的 .h 和 .m 类。场景中有一些代码,我也不知道它们的重要性。我必须说我是 Cocos2D 的新手,我想知道 CCScene 的意义何在?我需要在我的情况下使用它吗?如果有,怎么做?

谢谢!

Edit1:正确吗?我还添加了一个简单的游戏循环,所以我应该按照下面的方式进行还是应该使用 CADisplayLink?

//Cocos2D methods
-(id) init {
    if((self=[super init]))
    {
        CCScene *scene = [CCScene node];
        CCLayer *layer = [CCLayer node];
        [scene addChild:layer];
        [[CCDirector sharedDirector] runWithScene:scene];
        [self performSelector:@selector(cocosgameLoop:) withObject:nil afterDelay:1/60.0f];
    }
    return self;
}
- (void)cocosgameLoop:(ccTime)dT {
    //Check for collisions here and add gravity, etc....
}
- (void)viewDidUnload {
    [super viewDidUnload];
    [[CCDirector sharedDirector] end];
}
//

【问题讨论】:

    标签: ios cocos2d-iphone layer


    【解决方案1】:

    CCScene 是场景图中的根节点。没有父节点的节点。 CCDirector 仅适用于 CCScenes。阅读本文了解更多信息:http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:lesson_3._menus_and_scenes

    回答您的意见

    其实你不必了解 CCScene 是如何实现的。但是如果你想用 cocos2d 渲染某些东西,你必须创建一个 CCScene 并将它传递给 CCDirector。常见的方式是:

    CCScene *scene = [CCScene node];
    CCLayer *layer = [CCLayer node];
    [scene addChild:layer];
    [[CCDirector sharedDirector] runWithScene:scene];
    

    通常你必须继承一个 CCLayer 并重新实现init 方法来添加你的员工(例如精灵)。查看编程指南以获得更详细的答案: http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:index

    【讨论】:

    • 嗯,很有趣。那么这是否意味着在我的情况下我需要一个 CCScene 呢?如果是这样,里面会有什么样的代码?
    • 啊,这样代码会进入 init 方法吗?而且在那个初始化方法中,会去编码让我的角色和其他游戏精灵就位吗?另外,子类化 CCLayer 是什么意思?抱歉所有问题,只是我是新手!谢谢!
    • @MyApps:阅读 Objective-c 中的继承。很难用几句话来解释。是的,您可以在 init 方法中定位您的精灵。您还可以注册一个每帧都会调用的函数(查看编程指南)。你可以在那里更新你的精灵位置
    • 好吧,我用谷歌搜索了它,我对它了解得更多,但我用我拥有的当前代码更新了我的原始帖子。那是它应该看起来的样子吗?我们也可以把这个带到聊天信使吗?我需要我的游戏方面的帮助,但为了让你给我一些关于该做什么以及如何实施它的提示等...
    • @MyApps:在 Skype 中找到我:nitrogen0119882006
    猜你喜欢
    • 2011-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多