存储100个矢量XNA

时间:2013-04-14 23:31:01

标签: c# xna 2d-games

我正在进行2D自上而下的生存游戏,最高级别的精灵数量是100个精灵。 当我偶尔使用随机生成它们的矢量位置时,我会在精灵之间得到一些重叠。

因此,为了解决这个问题,我将存储一些预定义的位置。

问题

所以我的问题是什么是存储这些的最佳方式。最初我打算将它们存储在数组中,但是我认为将它们存储在文本文件中并在游戏开始时读取它们将是一个更好的解决方案。

我是初学者,所以如果有人能对此提出任何建议,我将不胜感激。

非常感谢

2 个答案:

答案 0 :(得分:3)

是将它们存储在CSV(逗号分隔值)文本文件中,或者如果需要,使用数据库,但我会推荐前者。在你的情况下,数据库存储听起来有点过分。在启动时,您将值加载到数组中。如果你不这样做,游戏每次获得价值时都会滞后。您只需要文本文件用于持久存储,然后使用数组进行使用。

希望这能为您解决问题!

答案 1 :(得分:0)

为什么不检查精灵的位置是否重叠?如果精灵经常不重叠,这不应该增加太多的计算,并且比固定位置模板更加随机。

在类中为sprite实体做的是添加一个公共Rectangle,你可能已经使用一个矩形将它们绘制到屏幕上。将此公开允许您在生成实体的类中执行类似的操作。

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);
}
}