如何让老板角色同时向各个方向开火



我是SpriteKit游戏开发的新手。我正在尝试让老板角色能够向多个方向投掷火球(一次 16 个火球,相距 360 度/16 = 22.5 度)。我知道如何通过提供玩家当前的位置让他在某个位置开火,但是无论玩家的位置如何,如何让他以 16 个不同的角度开火?

提前感谢您的任何帮助。

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

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)

我不确定你有什么代码。 用于拍摄。 但病了,试一试。 Spritekit 中的角度以弧度为单位,A 在一个圆中有 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
}

最新更新