私はSpriteKitゲームを作っています。私は6つの大砲を持っています。私は、各大砲の回転に同期する各大砲から大砲を撃ちたい。私は各砲弾の間に1秒の時間が必要です。回転砲からボールを撃つ
基本的には、回転している大砲は回転と同じ方向に砲弾を撃っています。
extension CGFloat {
func degreesToRadians() -> CGFloat {
return self * CGFloat.pi/180
}
}
私は砲弾の動きの一つを調整する方法を見つけ出すことができるはずですので、私は、つもりはちょうど1つの大砲のためのコードを入れてね:大砲のために
iは、拡張子を使用しています他人。ここでは1である。ここでは
func createCannons() {
let cannonLeftBottom = SKSpriteNode(imageNamed: "Cannon")
cannonLeftBottom.anchorPoint = CGPoint(x: 0.5, y: 0.5)
cannonLeftBottom.position = CGPoint(x: -325, y: -420)
cannonLeftBottom.zPosition = 4
cannonLeftBottom.setScale(0.4)
cannonLeftBottom.zRotation = CGFloat(65).degreesToRadians()
let rotateLB = SKAction.rotate(byAngle:
CGFloat(-65).degreesToRadians(), duration: 2)
let rotateBackLB = SKAction.rotate(byAngle:
CGFloat(65).degreesToRadians(), duration: 2)
let repeatRotationLB =
SKAction.repeatForever(SKAction.sequence([rotateLB,rotateBackLB]))
cannonLeftBottom.run(repeatRotationLB)
self.addChild(cannonLeftBottom)
}
は砲弾のための私の関数である。
func createBalls() {
let cannonBallLB = SKSpriteNode(imageNamed: "Ball")
cannonBallLB.name = "CannonBall"
cannonBallLB.position = CGPoint(x: -325, y: -420)
cannonBallLB.physicsBody = SKPhysicsBody(circleOfRadius:
cannonBallLB.size.height/2)
cannonBallLB.physicsBody?.affectedByGravity = false
cannonBallLB.zPosition = 3
cannonBallLB.setScale(0.1)
self.addChild(cannonBallLB)
}
THX!
あなたのコードは何ですか? – ThrowingSpoon
ThrowingSpoon - 申し訳ありませんが私は明確でない場合。私は大砲の回転と同じ方向に大砲を動かすコードを書いたがっています。大砲の回転がうまくいっています。しかし、それは私が書きたい大砲の動きです。 – Flinigan