如何创建一个对象的多个实例?

在我正在做的一个游戏中,我遇到了让玩家的船发射多颗子弹的问题。 子弹有单独的X和Y坐标和速度为X和Y.当我按下“空格”射击子弹,只有一个出来,当我释放空格键时,子弹消失。 我想制作多个子弹而不必制作arrays,因为镜头的数量将限制在arrays的大小。

如何使用数据创建对象的多个实例而不使用数组?

正如Sean所说,如果你不想使用固定大小的数组,你应该使用STL容器。 问题是你将会试图相对频繁地插入或删除随机元素。 我建议使用一个std :: vector,它基本上是一个数组(至less在内存中)和一些额外的特性,而不是使用固定大小的数组。 与std :: list相比,数据不断地存储在内存中,因此可以有效地进行物理和碰撞检测。 此外,它会自动为您resize,所以如果您无法确定子弹数目的“游戏玩法 – 隐式限制”,则不会有任何问题。

此外,正如我所说的,你将会试图删除向量中的随机元素。 相反,这样做:对于每一个项目符号,设置一个布尔活动标志。 如果向量的元素表示当前在空间中飞行的子弹,并且如果向量的元素表示“空闲”时隙,则将是假的。 创建新的项目符号时使用这个“空闲”插槽。