我正在制作一款2D自上而下的生存游戏,最高精灵的精灵数量为100个精灵。 当我使用随机生成他们的矢量位置偶尔我会得到一些重叠之间的精灵。存储100个矢量XNA
因此,为了解决这个问题,我将存储一些预先定义的位置。
问题
所以我的问题是什么是存储这些的最佳途径。最初我打算将它们存储在一个数组中,但是我认为将它们存储在一个文本文件中并在游戏开始时读取它们会是一个更好的解决方案。
我是一个初学者,所以如果任何人都可以对此提出任何意见,将不胜感激。
非常感谢
我正在制作一款2D自上而下的生存游戏,最高精灵的精灵数量为100个精灵。 当我使用随机生成他们的矢量位置偶尔我会得到一些重叠之间的精灵。存储100个矢量XNA
因此,为了解决这个问题,我将存储一些预先定义的位置。
问题
所以我的问题是什么是存储这些的最佳途径。最初我打算将它们存储在一个数组中,但是我认为将它们存储在一个文本文件中并在游戏开始时读取它们会是一个更好的解决方案。
我是一个初学者,所以如果任何人都可以对此提出任何意见,将不胜感激。
非常感谢
是它们存储在一个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);
}
}
这会被视为一种蛮力方法吗?有了一个小视口和许多精灵,这可能会导致很多循环运行? –
感谢您的回答!这是我实施的解决方案:) –