0

我正在使用 slick2d 创建一种类似于 RPG 的开放世界流氓游戏。我想知道我可以使用什么方法在多个房间中移动多个怪物并为其设置动画,而我正在从一个房间到另一个房间走来走去做任何事情。我有一个方法,但我觉得它效率极低,甚至不能正常工作。(涉及一个常量 for 循环,处理怪物移动 x 和 y,同时动画制作有问题)

任何帮助将不胜感激,谢谢。我只是在用文字询问方法,但任何代码片段作为伪代码或小 jiblet 都会非常有用。

4

1 回答 1

0

保留一份“活跃”的怪物列表——足够近以至于可能可见,或活跃在视线之外——与世界上更远的“悬浮”怪物不同。

当玩家越过“粗网格”边界时(比如每 64-128 像素,或其他),更新“活动”列表。玩家正在接近的怪物将移至活动列表,玩家留下的怪物将移出活动列表。

“休眠”的怪物可能会通过“粗略网格”位置存储为地图或多地图。

像这样的算法将使您能够通过限制局部区域的怪物来保持动画和怪物计算的合理性,同时在整个大世界中保持怪物处于暂停状态。

当玩家真正再次看到怪物时,它应该有机会“在视线之外”活动、移动、与其他怪物战斗等——从而给人一种一直处于活动状态的外观。

为了让怪物最有能力“潜行”并从后面攻击玩家,您可以将“活动范围”设置为至少是玩家可见距离的 2.5 倍,甚至更多。这与包括偷偷摸摸(远离玩家视线)在内的一系列寻路算法相结合,可以帮助他们成为真正具有挑战性的对手。

于 2013-10-26T22:33:57.663 回答