-4

我是一个完整的新手,正在开发一款 2D RTS 游戏。到目前为止,我已经创建了一个对象“步兵”,可以让它向指定方向发射“子弹”,并且只能在房间外找到删除子弹的代码。我希望子弹在距离步兵 300 像素的相对距离处删除。并且需要代码非常干净,因此最终会有很多子弹。我的问题是:我是否应该在步兵周围制作一个矩形,以指定范围和视线,以及子弹何时与 range = delete 相撞?或者子弹类是否应该说“一旦创建+行进距离= 300像素=删除”?...您可以提供的任何代码或提示将不胜感激。

4

2 回答 2

0

简单方法:

  • 存储创建弹丸的原点(在枪管处)
  • 每一帧,使用距离公式找出弹丸是否已经超过了行进半径。
  • 您可以Math.Sqrt通过与半径的平方进行比较来避免距离公式中的调用。

    var dx = xbullet - xorigin;
    var dy = ybullet - yorigin;
    if (dx*dx + dy*dy > range*range) delete bullet
    
于 2013-04-26T16:21:25.343 回答
0

我认为你的第二个建议更好。如果你制作一个盒子或检查与士兵的距离,那么如果士兵追着子弹跑,子弹可能会走得更远(如果子弹不是即时旅行,那就是)。

于 2013-04-26T16:23:48.570 回答