1
私は、外側から発射するサークル内のプレーヤーから8つの弾丸を作成する機能を持っています。私はこの問題は、ここで、このラインであると思う:SpriteNodesを円形のパターンで外側に移動
let endPoint = CGPoint(x: distance * cos(angle), y: distance * sin(angle))
実際には、彼らがすべてで同じ距離を移動しなければならないとき、これは、弾丸が右上にあるものよりも、円の左下に速く移動させ、同じ速度。
これを実装する方法を知っている人はいますか?
func fireSpecialWeapon() {
stride(from: 0, to: 2 * CGFloat.pi, by: 2 * CGFloat.pi/8).forEach { angle in
let bullet = SKSpriteNode(imageNamed: "bulletCircle")
bullet.setScale(3)
bullet.zRotation = angle
bullet.position = player.position
bullet.zPosition = 2
//move outwards to the edge of the screen
let distance: CGFloat = 1000
let endPoint = CGPoint(x: distance * cos(angle), y: distance * sin(angle))
let move = SKAction.move(to: endPoint, duration: 2)
self.addChild(bullet)
bullet.run(move)
}
}
これは1に別の質問です私はコメントしましたか? –
SKAction moveを使用すると、飛行機が直線になります。弾丸が速く動いていない場合は、指定した距離(1000ポイント)を2秒で移動します。 – Knight0fDragon
弾丸が左下から右上へ、 、あなたのアンカーポイントが(0,0)でないことを意味します(0.5,0.5) – Knight0fDragon