我正在制作一个2D自上而下的生存游戏,最高级别的精灵计数是100个精灵。当我用随机的方法来产生它们的矢量位置时,我会得到它们之间的一些重叠。
为了解决这个问题,我要储存一些预先定义好的位置。
问题
所以,我的问题是,什么是最好的方式储存这些。最初我打算将它们存储在一个数组中,但是我认为将它们存储在文本文件中并在游戏开始时读取它们将是一个更好的解决方案。
我是个初学者,如果有人能在这方面提供任何建议,我将不胜感激。
非常感谢
发布于 2013-04-14 23:58:27
是的,将它们存储在CSV (逗号分隔值)文本文件中,或者如果需要,使用数据库,尽管我会推荐前者。在您的情况下,数据库存储听起来有点过分。启动时,您将将这些值加载到数组中。如果你不这样做,每次它得到一个值时,游戏就会滞后。您只需要用于持久存储的文本文件,然后需要用于使用的数组。
希望这能帮你解决你的问题!
发布于 2013-04-21 13:41:37
你为什么不直接检查一下精灵的位置是否重叠?如果精灵不经常重叠,这不应该增加太多的计算和更多的随机性,然后是一个固定的位置模板。
对于带有sprite的实体,您在类中所做的是添加一个公共矩形,您可能已经使用了一个矩形将它们绘制到屏幕上。公开允许您在生成实体的类中执行类似的操作。
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);
}
}https://stackoverflow.com/questions/16005568
复制相似问题