の方向にSKSpriteNodeの移動ここでは、ゲームのPrintScreenをを持っている:は、タッチ
私はタッチの方向に回転している静的SKSpriteNode(プレイヤー)を持っています。
class GameplayScene: SKScene, SKPhysicsContactDelegate {
static let Pi = CGFloat(Double.pi)
static let DegreesToRadians = Pi/180
override func touchesMoved(_ touches: Set<UITouch>, with event:
UIEvent?) {
let curTouch = touches.first! as UITouch
let curPoint = curTouch.location(in: self)
let deltaX = self.player.position.x - curPoint.x
let deltaY = self.player.position.y - curPoint.y
let angle = atan2(deltaY, deltaX)
self.player.zRotation = angle + 90 * GameplayScene.DegreesToRadians
}
}
は今、私は、画面のタッチと同じ方向に動くプレイヤーから毎秒弾丸を撃つたい:これは私がそれを持っているコードです。弾丸が画面の外に移動すると、「SKAction.removeFromParent」を実装します。 、ミサイル射撃用として
run(SKAction.repeatForever(SKAction.sequence([SKAction.run {
yourFunction()
}, SKAction.wait(forDuration: 1)])), withKey: "key")
順番にSKActionsを追加:あなたはこれを使用したいと思う、タイマーの
func fireMissile() {
let missile = SKSpriteNode(color: .yellow, size: CGSize(width: 20,
height: 5))
missile.name = "Missile"
missile.position = CGPoint(x: player.position.x + 30, y:
player.position.y)
missile.zPosition = 2
missile.physicsBody = SKPhysicsBody(rectangleOf: missile.size)
missile.physicsBody?.isDynamic = false
missile.physicsBody?.categoryBitMask = ColliderType.Bullet
missile.physicsBody?.collisionBitMask = ColliderType.Enemy
missile.physicsBody?.contactTestBitMask = ColliderType.Enemy
self.addChild(missile)
}
この回答はまだありませんでしたか? – Knight0fDragon
が混乱している、またはここで2つの異なる質問をしていますか?弾丸を外したり、タンクを回転させたりするのを助ける必要がありますか?またはタンクを動かすのを助ける?これらはすべて別々の質問です:) – Fluidity
Fluidify - 私は弾丸を一定の速度で画面上のタッチの方向に(プレーヤーから)基本的に撮影したいです。申し訳ありませんが、それを明確にbeeingしないでください:P – Flinigan