我将SKSpriteNode
子类化为SKButton
创建一个SKButton.h
@interface SKButton : SKSpriteNode
现在我想通过
SKButton.m
中的方法更改按钮图像self = [SKSpriteNode spriteNodeWithImageNamed:image];
这里的自我是
SKButton
,但这给了我错误无法在初始化族的方法之外分配给“自身”
从“SKSpriteNode *”分配给“SKButton *”的指针类型不兼容
我也在
SKButton.m
中尝试过self = [self spriteNodeWithImageNamed:image];
它给我错误
'SKButton'没有可见的@interface声明选择器
'spriteNodeWithImagedNamed:'
最佳答案
spriteNodeWithImageNamed:
是SKSpriteNode
上的类方法,该方法使用提供的图像返回新的SKSpriteNode。本质上,您正在尝试使用此行-
self = [SKSpriteNode spriteNodeWithImageNamed:image];
是将当前对象更改为新对象-您不能执行此操作。即使可以,也可能是新的
SKSpriteNode
而不是新的SKButton
。您需要做的是操纵节点的
texture
属性-self.texture=[SKTexture textureWithImageNamed:image];
关于ios - 如何调用父类(super class)表单子(monad)类SpriteKit的方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31693959/