3

我不明白为什么如果我将实现 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

如果我将此类的一个实例附加到场景中,触摸对象......什么也没有发生。

我是不是忘记了什么?

4

1 回答 1

13

我刚刚看到 SKNode 的参数userInteractionEnabled默认等于NO. 只需将其设置YES为使代码正常工作。

于 2013-09-30T17:08:51.093 回答