我无法理解为什么如果我将实现UIResponder协议的SKSpriteNode子类化,则从未调用与触摸相关的方法。
例如,这是一个非常简单的类,我正在使用它作为测试:
//INTERFACE ----------------
#import <SpriteKit/SpriteKit.h>
@interface TestClass : SKSpriteNode
@end
//IMPLEMENTATION -----------
#import "TestClass.h"
@implementation TestClass
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSLog(@"oook");
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{}
@end
如果我将此类的实例附加到场景中,则触摸该对象......没有任何反应。
我忘记了什么吗?
答案 0 :(得分:13)
我刚刚看到SKNode默认参数userInteractionEnabled
等于NO
。只需将其设置为YES
即可使代码正常运行。