我想通过单击精灵来使图像跳转,而不是单击屏幕使其跳转。

func jump() {
    Football?.texture = SKTexture(imageNamed: "Football")
    Football?.physicsBody?.applyImpulse(CGVector(dx: 100, dy: 2000))
}

override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
    for t in touches { self.touchUp(atPoint: t.location(in: self)) }
}

func touchUp(atPoint pos: CGPoint) {
    Football?.texture = SKTexture(imageNamed: "Football")
}

override func update(_ currentTime: TimeInterval) {
    // Called before each frame is rendered
}

最佳答案

这是测试精灵是否被触摸的一种非常基本的方法

顺便说一句,您的变量被命名为Football专有名词说,您应该使用小写的变量名“ football”

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {

    if let touch = touches.first as UITouch! {

        let touchLocation = touch.location(in: self)

        if Football.contains(touchLocation) {
            //jump code here
        }
    }
}

10-07 18:35