对不起标题,似乎找不到更短/更好的描述..
情况就是这样:我正在制作一个简单的游戏,其中有一张大地图(简单,但尺寸非常大).该地图上还有很多敌人,但动作仅限于主角(在某个半径范围内,这是地图的一小部分).
在每个'tick'(或步骤,或者你称之为的任何东西)中,每个对象上都会调用一个函数来确定它们的下一步动作.出于性能原因,由于我不关心在我的视图范围之外发生了什么(或者至少是非常远的东西),我不想在非常外来的对象上调用该函数.
如何管理这些对象以确保我总是有一个附近对象的列表,当我在地图上移动时会更新这些对象?
(我知道它是用C++标记的,但任何语言都可以 - 我不是在寻找那么多的代码 - 更多的是关于这个想法)
我尝试了一些替代方案:
x距离时扫描整个地图并刷新活动的敌人列表.这有点好,因为我不必担心像备选方案1这样的大量界限,但我每次都必须扫描整个地图.我现在正在研究备选方案3,即将这两种解决方案混合在一起.
但是,我想确保没有更明显的解决方案.