ios - SKEmitterNode的自定义类子类不起作用

标签 ios objective-c class enums sprite-kit

我正在编写一个简单的SpriteKit游戏,但是我遇到了一个非常严重的错误。
我创建了SKEmitterNode的子类,命名为GameNode。我需要一些特殊的实例方法。我为此自定义类(GameNode)设置了一个属性。其以下内容:

@property (nonatomic,assign) nodetype GNodeType;

是的,我为此属性类型使用一个枚举。我的枚举如下:
    typedef enum {
    nodetypeblue,
    nodetypered,
    nodetypegreen,
    nodetypewhite

}nodetype;

好的,现在我的问题是什么。当我使用以下自定义init方法实例化此类时:
-(id)initWithRandomTypeforSkScene:(SKScene*)Scene{
    self=[super init];
    if (self) {
        nodetype type = arc4random_uniform(4);
        self.GNodeType=type;
        NSString *bluepath = [[NSBundle mainBundle] pathForResource:@"bluenode" ofType:@"sks"];

        NSString *pathtoadd = [NSString string];


            switch (type) {
                case nodetypeblue:
                    pathtoadd = bluepath;
                    break;
               //I have some possiblilies here i not list them all, its desnt matter
                default:
                    pathtoadd = bluepath;
                    break;
            }

            self = [NSKeyedUnarchiver unarchiveObjectWithFile:pathtoadd];
            self.position = CGPointMake(arc4random_uniform(Scene.size.width-40)+20, arc4random_uniform(Scene.size.height-40)+20);
            //self.name = @"node";
            [self setScale:0.25f];



        return  self;

    }
    else{
    return nil;
    }

}

OK,之后,我尝试创建此类的z实例,如下所示:
GameNode * Node = [[GameNode alloc] initWithRandomTypeforSkScene:self];
//Self is a SKScene here

这是我的问题。这将返回一个SKEmitterNode而不是GameNode。我怎么知道的?因为每当我调用Node.GNodeType时,xcode都会发送带有以下错误消息的Exception:

-[SKEmitterNode GNodeType]:无法识别的选择器已发送到实例0x10a022f80

我设置了很多刹车点,并尽力做到了,但是它并没有解决任何问题。
哦,在我创建了一个名为“Node”的实例之后,我检查了一下,创建完该Tpye之后就是SKEmitterNode而不是GameNode。如果我检查类中的类型或GnodeType,则一切正常。创建,初始化后,我刚好在外面遇到问题。请帮助。

最佳答案

在LearnCocos2D的帮助下,我成功地解决了该问题。

因此,我为我的类创建了一个属性,其中包含一个SKEmitterNode。我将sks添加到属性中,并提出了此Property而不是整个类。

关于ios - SKEmitterNode的自定义类子类不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22822121/

相关文章:

iphone - 如何在 iphone 中找到图像的颜色边缘?

ios - 无法在 UISearchController 中选择搜索结果

objective-c - 检查对象是否为零时出了什么问题

java - 如何在我的 TextArea 中显示控制台中显示的文本?

iOS HTTP Post 不会运行 url

ios - 如何创建一个 UIView,根据按下显示 View 的按钮来显示某些信息?

ios - 为什么某些功能覆盖率已经是 100% xcode 9

ios - object 不能为 nil - 在 segue 上?

c++ - ';' token 之前的预期类型说明符

PHP : Function argument must be an Object with dynamic class name