ios - 在 cocos2d 中使用参数初始化场景

标签 ios objective-c cocos2d-iphone

我正在尝试在 cocos2d(版本 0.99.5)中初始化一个场景,并希望传入一个参数。在这种情况下,该参数是一个与级别编号对应的 int 值。场景类本身是 CCLayer 的子类,我使用节点类方法对其进行初始化:

GameScene *scene = [GameScene node];  //GameScene subclass of CCLayer

我有一个采用变量“level”的自定义初始化方法,如下所示:

- (id) initWithGameLevel:(int)level {
    if ((self = [super init])){
        // etc 
    }
}

只是想知道:我创建自己的 initWithX 方法的方法是否偏离了基础,以及我将如何使用级别整数初始化场景?

最佳答案

将此方法添加到您的子类

+(id)nodeWithGameLevel:(int)level{
    return  [[[self alloc] initWithGameLevel:level] autorelease];
}

而不是

GameScene *scene = [GameScene node]; 

GameScene *scene = [GameScene nodeWithGameLevel:levelNumber];

关于ios - 在 cocos2d 中使用参数初始化场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5644332/

相关文章:

ios - 什么是 UIScrollView 的 "content view"?

objective-c - NSArray 执行此操作的最有效方法 :

ios - cpSpaceHashEach-同一行有2个问题

ios - 升级到 ARC 后,我是否必须删除我的发布声明?

javascript - "var cc = cc = cc || {};"行在Cocos2D中有什么作用?

ios - 如何从 iOS 项目中删除启动屏幕?

ios - 横向模式下的 UIWebView init 在 iOS 4.1 的屏幕右侧有 "black color part"

ios - xcode - Swift - 如何获得动态表格 View 以便每个单元格在被选中时可以展开并显示更多信息

ios - Apple 代码示例,为什么他们直接在此处访问 ivars?

objective-c - OR 无法解析的 objective-c nspredicates