我想知道是否有一种简单的方法来处理对象的潜在无限实例,在这种情况下是子弹。由于我的游戏中的玩家可以连续射击,并且屏幕上有很多敌人,很有可能会有超过100个“子弹”物体的实例,如果我减慢子弹速度和增加速度,则会增加10倍。火。我是否需要将它们保存在动态数组(例如std :: vector)中并逐个移动它们,还是有一种更简单的方法可以控制它们而不会出现严重的延迟/延迟?
答案 0 :(得分:1)
如果你想遍历所有子弹并对它们做一些事情(比如移动),那么std::vector
是最好的默认选择。
答案 1 :(得分:1)
如果这是一种非导弹武器,如机枪或手枪,你应该重新考虑为每颗子弹产生一个物体的系统。处理此类事情的标准方法是每次拍摄光线投射,检查第一次(或多次)碰撞,并立即处理(或在某些特殊游戏中,延迟处理)。这通常伴随着某种类型的枪口闪光,这完成了幻觉。
对于导弹武器,你肯定需要产生物体并跟踪它们,因为射弹的速度足够慢,可以避免,射击等。在这种情况下,使用像Wojtek建议的std::vector
。
Game Dev SE有很多关于FPS设计的有用读物。祝你好运!