我正在制作一个 2D 自上而下的生存游戏,顶层的最大精灵数是 100 个精灵。当我偶尔使用随机生成它们的矢量位置时,我会在精灵之间得到一些重叠。
因此,为了解决这个问题,我将存储一些预定义的位置。
问题
所以我的问题是存储这些的最佳方式是什么。最初我打算将它们存储在一个数组中,但是我认为将它们存储在一个文本文件中并在游戏开始时读取它们将是一个更好的解决方案。
我是初学者,所以如果有人可以就此提供任何建议,将不胜感激。
非常感谢
是的,将它们存储在 CSV(逗号分隔值)文本文件中,或者如果您愿意,可以使用数据库,尽管我会推荐前者。在您的情况下,数据库存储听起来有点矫枉过正。在启动时,您会将值加载到数组中。如果你不这样做,游戏每次获得价值时都会滞后。您只需要用于持久存储的文本文件,然后需要用于使用的数组。
希望这可以为您解决问题!
你为什么不检查精灵的位置是否重叠?如果精灵不经常重叠,那么这不应该增加太多的计算并且比固定位置模板增加更多的随机性。
您在类中为具有精灵的实体所做的是添加一个公共矩形,您可能已经使用一个矩形将它们绘制到屏幕上。将此公开允许您在生成实体的类中执行类似的操作。
if (addSprite)
{
Entity newEntity = new Entity(random position);
foreach (Entity e in entityList)
{
if (newEntity.rectangle(Intersects(newEntity.rectangle))
{
//give a new position to newEntity and run this loop again
}
else
{
entityList.add(newEntity);
}
}