我有一个检测摇动的问题。它是Sprit Kit中的一个skscene,我定义了这样的运动检测器:
- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{
}
-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {
NSLog(@"test?");
}
我的错误在哪里?我是否必须实现它,就像我必须使用UIGestureRecognizer一样?
提前致谢(抱歉我的英文不好) 儒略
答案 0 :(得分:2)
显然,您无法检测来自SKScene
子类的摇动事件,例如GameScene
。但是,您可以从视图控制器中检测它们,例如GameViewController
。触发震动事件时,您可以从视图控制器中调用GameScene
中的摇动处理程序。
在GameViewController.m中,添加此项以检测摇动事件
- (void) motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event {
if (motion == UIEventSubtypeMotionShake) {
SKView *skView = (SKView *)self.view;
GameScene *scene = (GameScene *)skView.scene;
// Call a function in the GameScene
[scene shake];
}
}
将其添加到GameScene.h中的@interface
- (void) shake;
将此添加到GameScene.m
- (void) shake {
NSLog(@"shake");
}