例如,缘故:
- 假设世界上有10个房间。
- 假设世界上居住着10个实体。
- 每个实体都有自己的“例行程序”,在该例行程序中它在房间中执行某些操作,并且还可以在房间之间进行导航。
假设玩家一次只能进入一个房间,那么跟踪其他实体在屏幕外其他房间正在执行的动作的好方法是什么?
- 最直接的选择是检查每一帧上的10个实体中的每个实体,检查它们的位置/状态,并确定该实体在任何给定时间是否应位于玩家所在的房间中。 (但是,这确实感觉资源很丰富,尤其是随着房间/实体数量的增加。)
另一种选择是跟踪自游戏开始以来所经过的时间,然后每个实体检查其模式是否与玩家所在的房间相交,并且是否按照时间检查是否已实体应该在此特定时间位于同一房间中,其图案不与玩家所在的当前房间相交的实体直到玩家进入其图案相交的房间并且仅在该点才计算不执行任何操作他们应该渲染。(但是,如果他们与房间互动,那么他们将必须始终检查与路线相交的房间的状态,以便确定在该时间点的位置,这并不是那么好。)
我要做的第三个选择是,首先仅查看与玩家位置相交的路线(如前所述),其次进入房间后,检查玩家是否在该房间内,如果不是,则仅检查房间的状态,以及进入下一房间需要多长时间。例如,一个看门人NPC进入房间,检查房间的状态,查看玩家是否有溢出物,计算清理该清理所花费的时间以及该路径需要花费多长时间等。时间是进入下一个房间的时间,我们只会检查玩家是否在房间里。用于渲染目的的NPC的确切位置仅在玩家进入房间时计算。
经过一番集思广益后,我想到了第三个选择,但我想知道是否存在一种已知或更好的方法来处理此类问题?