如何让老板角色同时向所有方向开火
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)
我是 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)