我需要一个模式/策略来解决我的问题。你知道一些书还是我可以阅读的东西吗?
我的问题(所有理论): 我有一些游戏,我有2个NPC。他们是工人,必须修理一些东西。为此,他们需要不同的材料,具体取决于错误。当出现错误时,我会计算哪个NPC最快。为此,我计算每个NPC每次移动NPC必须采取的行动(步行,等待......)。工人也可能因为另一项任务而被占用一段时间,所以在计算中我也必须考虑这一点。
现在我的问题是我可以使用相同的代码(稍加修改)让NPC走后我决定哪一个最适合该任务,但在我看来这是一个巨大的冗余,我想避免这样做。此外,我将不得不中途停止一些任务,让NPC在其他地方工作。不要以为这样容易处理。
所以我的第二个想法是创造像工作链一样的东西。在我的时间计算中,我已经决定了NPC将要走/走路的地方。所以我可以在这一点上添加将该动作写入列表的内容。循环将执行操作,并且在任何时候都很容易停止。 (当然,每次计算后我会有两个列表,每个NPC一个。但只使用最快的。)
如果有某种模式或某种类似的东西想出来,我会很感激,如果你能指出我的来源。
或者甚至有更好的方法来解决这个问题?
-Regards
编辑:
时间以不同方式计算,例如当工人必须走到某处时,计算这个时间(距离/速度)。对于不同的等待时间,不同的场合有不同的值。最后,返回所有这些时间的总和。但整个方法不仅仅是加起来不同的时间。为了使时间正确,它会根据工人的位置寻找最佳路线。所以动作顺序每次都可以不同......动作本身就是方法,比如walk(start,dest)或wait(seconds)。 所以我想,当方法已经找到最佳的动作顺序以使计算正确时,它也可以将其存储在某种列表中以在实际动画中使用它...我会将动作存储在数组中条目是:代表使用方法的数字,其余的是参数