游戏开发:飞行球与游戏对象类型的实现
飞行球的更新机制
在游戏中,当球未处于发射状态时,玩家可以更改球的颜色。实现这一功能的方法是获取当前加农炮的颜色,并相应地改变球的颜色。为确保球的颜色始终与加农炮的颜色匹配,可将加农炮颜色指示器对象的隐藏状态映射到不同颜色的球上,代码如下:
ballRed.hidden = cannonRed.hidden
ballGreen.hidden = cannonGreen.hidden
ballBlue.hidden = cannonBlue.hidden
同时,还需要更新球的位置。因为当球未在空中时,玩家可以通过旋转加农炮的炮管来修改球的发射位置。所以要计算球的正确位置,以确保其与加农炮炮管的当前方向相匹配。利用正弦和余弦函数计算新位置的代码如下:
let opposite = sin(cannonBarrel.zRotation) * cannonBarrel.size.width * 0.6
let adjacent = cos(cannonBarrel.zRotation) * cannonBarrel.size.width * 0.6
ball.position = CGPoint(x: cannon.position.x + adjacent, y: cannon.position.y + opposite)
这里将对边和邻边乘以 0.6,使球绘制在旋转炮管一半以上的位置。
在 updateBall
超级会员免费看
订阅专栏 解锁全文
8

被折叠的 条评论
为什么被折叠?



