Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 光滑的2D,独立的怪物运动_Java_Slick2d - Fatal编程技术网

Java 光滑的2D,独立的怪物运动

Java 光滑的2D,独立的怪物运动,java,slick2d,Java,Slick2d,我正在使用slick2d创建一种类似RPG的开放世界盗贼。我想知道我可以用什么方法来移动和动画多个怪物,在多个房间,而我在房间之间走动做任何事情。我有一个方法,但我觉得它非常低效,甚至不能正常工作。(涉及循环常量,用于处理怪物移动x和y,并且在同时设置动画时遇到问题) 任何帮助都将不胜感激,谢谢。我只是想用文字说明这个方法,但任何伪代码或小Jibblet之类的代码片段都非常有用。保留一个“活动”的怪物列表,这些怪物离我们很近,可能看得见,也可能看不见,与世界上更远的“悬浮”怪物不同 当玩家穿过“

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


任何帮助都将不胜感激,谢谢。我只是想用文字说明这个方法,但任何伪代码或小Jibblet之类的代码片段都非常有用。

保留一个“活动”的怪物列表,这些怪物离我们很近,可能看得见,也可能看不见,与世界上更远的“悬浮”怪物不同

当玩家穿过“粗网格”边界时(比如说每64-128像素,或者其他什么),更新“活动”列表。玩家现在接近的怪物将移动到活动列表中,玩家留下的怪物将从活动列表中移出

“冬眠”怪物可能通过“粗网格”位置存储为地图或多重地图

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

当玩家再次看到怪物时,它应该有一些机会在“看不见”的地方活动,移动,与其他怪物战斗等等——这样就给人一种一直处于活动状态的感觉

为了让怪物有最大的能力“鬼鬼祟祟”并从后面接近玩家,你可以将“活动范围”设置为至少是玩家可视距离的2.5倍,甚至更多。这一点,加上一系列的寻路算法,包括鬼鬼祟祟(远离玩家的视线),可以帮助他们真正挑战对手