【问题标题】:How do I make my image node jump when I tap the screen?点击屏幕时如何让我的图像节点跳转?
【发布时间】:2021-10-06 21:02:26
【问题描述】:

我是 Xcode 新手,目前正在学习 swiftUI 和 SpriteKit。

我已经开始在 Xcode 的 GameScene.SKS 部分中创建我的游戏应用程序,并且我试图弄清楚当我在模拟器中单击屏幕时如何让我的角色跳跃?

【问题讨论】:

  • 欢迎来到 StackOverflow!请阅读how to write a good question。您的问题是笼统的而不是具体的,任何人都不太可能给出答案。

标签: swift xcode swiftui sprite-kit


【解决方案1】:

您可以在.sks文件中命名节点,并在代码中引用它。

  1. 在场景中创建您的精灵或节点类型。
  2. 在下图的右上角,您可以看到我已将精灵命名为red-square。您稍后需要参考。

  1. 在您的 GameScene 类中,编写以下代码,将节点名称替换为您的:
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
    if let redSquare = childNode(withName: "red-square") {
        redSquare.position = CGPoint(
            x: .random(in: frame.minX ... frame.maxX),
            y: .random(in: frame.minY ... frame.maxY)
        )
    }
}

现在,每次点击场景中的任意位置,红色方块都会随机移动到一个新位置。

【讨论】:

  • 感谢您的快速回复,我已将其复制到我的代码中并将名称更改为我的角色。但是,我收到了一些错误,“在范围内找不到 childNode”和“在范围内找不到框架”。
  • @DamianDunn 这是你的游戏场景类吗?应该类似于class GameScene: SKScene { … }
  • 是的,它在游戏场景中。
  • @DamianDunn Well SKScene 符合 SKNode,因此具有 frame 属性和 childNode(withName:) 方法。如果没有更多信息,我无法告诉您为什么会出现这些错误。尝试使用 cmd+shift+K 清理项目,尝试重建,如果这不起作用,那就是另一个问题了。
  • 对不起,我错了,我一直在GameViewController中编辑!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多