[英]How to call a method of super class form subclass SpriteKit
我將SKSpriteNode
子類SKButton
在SKButton.h
創建SKButton.h
@interface SKButton : SKSpriteNode
現在我想通過SKButton.m
的方法更改按鈕圖像
self = [SKSpriteNode spriteNodeWithImageNamed:image];
這里的自我是SKButton
但它給了我錯誤
無法在init系列中的方法之外分配給'self'不兼容的指針類型從'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];
在這一行:
self = [SKSpriteNode spriteNodeWithImageNamed:image];
你是一個向下轉換SKSpriteNode
到SKButton
為這是不正確SKSpriteNode
實例沒有通過SKButton提供的額外實施。
由於SKButton
是一個SKSpriteNode
子類,它包含了它的所有功能,所以你可以這樣做:
- (void)buttonClicked {
[self setTexture:[SKTexture textureWithImageNamed:"buttonClicked.png"]];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.