如何让老板角色同时向所有方向开火

How to get a boss character to fire at all directions at once

我是 SpriteKit 游戏开发的新手。我正在尝试赋予 Boss 角色向多个方向发射火球的能力(同时发射 16 个火球,相隔 360 degree/16 = 22.5 度)。 我知道如何通过提供玩家的当前位置让他在某个位置开火,但是如何让他在 16 个不同的角度开火而不考虑玩家的位置?

提前感谢您的帮助。

我不确定你有什么代码。用于拍摄。但我会试一试。 spritekit 中的角度以弧度为单位,一个圆中有 2*pi 弧度。所以你只需要做这样的事情

let fireballs = 16
let threeSixty = CGFloat(M_PI*2)
for i in 1...fireballs {
    let angle = (CGFloat(i) / CGFloat(fireballs)) * threeSixty
    // do something useful with your angle
}

首先,在角度上设置一个循环

let numAngles = 16
var angle:CGFloat = 0
var angleIncr = CGFloat(2 * M_PI) / CGFloat(numAngles)
let strength:CGFloat = 50
for _ in 0..<numAngles {
    ...        
    angle += angleIncr
}

在循环中,将角度转换为对应的向量分量,然后创建向量

let dx = strength * cos (angle)
let dy = strength * sin (angle)

let vector = CGVectorMake (dx, dy)

并创建一个新的火球并对其物理体施加脉冲

let fireball = ...
fireball.position = player.position
fireball.zRotation = angle

// Add a physics body here

fireball.physicsBody?.appyImpulse (vector)