检测sprite kit中的抖动

时间:2014-12-28 18:46:27

标签: sprite-kit shake skscene

我有一个检测摇动的问题。它是Sprit Kit中的一个skscene,我定义了这样的运动检测器:

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event{

}

-(void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event {

NSLog(@"test?");

}

我的错误在哪里?我是否必须实现它,就像我必须使用UIGestureRecognizer一样?

提前致谢(抱歉我的英文不好) 儒略

1 个答案:

答案 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");
}