【问题标题】:A shake gesture in sprite kitsprite kit 中的摇晃手势
【发布时间】:2025-12-19 11:55:05
【问题描述】:

我想在 sprite kit 中有一个摇动手势,我只能在视图控制器 .m 中执行功能,那么我如何获得摇动手势以便它在 sprite kit 中的不同场景上工作?因为当我在 sprite 中从场景中调用该函数时,该函数不会被调用,那么如何在 sprite kit 场景中调用该函数或将其从视图控制器转移到 Sprite Kit 场景。谢谢

【问题讨论】:

  • 请添加您已经尝试过的代码。
  • 另外,看看这个:*.com/questions/150446/…
  • 谢谢,但这对我的情况没有帮助,因为我知道如何使用摇动动作手势,但是在 SKScene 中,动作手势不起作用,该函数永远不会被调用,而是在视图控制器中.m 它将被调用并工作。
  • 如果您在 viewController 中获取数据,那么您可以将其传递给 SKScene 并从那里处理。
  • 如果您发布您在这方面能够实现的任何内容,所有这一切都会容易得多。

标签: ios objective-c sprite-kit


【解决方案1】:

如何简单地将任何动作手势传递给 SKScene,如下所示:-

// hand-over motion gestures to SKScene

- (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    SKView * skView = (SKView *)self.view;
    [skView.scene motionBegan:motion withEvent:event];
}

- (void)motionCancelled:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    SKView * skView = (SKView *)self.view;
    [skView.scene motionCancelled:motion withEvent:event];
}

- (void)motionEnded:(UIEventSubtype)motion withEvent:(UIEvent *)event
{
    SKView * skView = (SKView *)self.view;
    [skView.scene motionEnded:motion withEvent:event];
}

【讨论】: