画面の中央にスプライトがあり、画面の左右に触れることで左右に回転できます。(Xcode Swift SpriteKit)スプライトを向いている方向に移動するには
私がしたいことは、スプライトが連続的に前進しているが、常に向いている方向にあることです。私はSKActionsなどで基本的な動きをする方法を知っています...しかし、スプライトが回転している方向に連続的に動きをどのように計算するか分かりません。
数学は私の強みではありませんでしたので、私に役立ついくつかのサンプルコードを非常に感謝しています。
var player = SKSpriteNode()
override func didMove(to view: SKView) {
player = SKSpriteNode(imageNamed: "4B.png")
player.setScale(0.3)
player.zPosition = 100
self.addChild(player)
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
let position = touch.location(in: self)
if position.x < 0 {
let rotate = SKAction.repeatForever(SKAction.rotate(byAngle: CGFloat(M_PI), duration: 2))
player.run(rotate, withKey: "rotating")
} else {
let rotate = SKAction.repeatForever(SKAction.rotate(byAngle: CGFloat(-M_PI), duration: 2))
player.run(rotate, withKey: "rotating")
}
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
player.removeAction(forKey: "rotating")
}
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
}
}
パーフェクト - ありがとう、これは治療法です –