我正在使用Gridworld api为我的Comp Sci类工作一个基本的RPG,我的运动完全正常但我想保持网格以主角为中心,这应该从GridPanel中的recenter方法完成,目前我我正在使用我自己的世界对象,因为这是在main方法中声明的唯一东西,我应该能够从那里获取DisplayPanel对象,但我找不到这样做的方法。有谁知道如何获取当前DisplayPanel对象的实例?
答案 0 :(得分:0)
使用ActorWorld
调用recenter()方法执行此操作:
ActorWorld world = new ActorWorld();
...
world.show();
WorldFrame frame = (WorldFrame) world.frame;
frame.display.recenter(/*Your Location*/);
可悲的是frame
是私密的,因此您需要进入WorldFrame
并将其声明为公开。如果您仍在使用gridworld.jar
作为外部资源,则需要将其所有包导入到您自己的项目中。我解释了它here。
如果你不知道recenter()
实际上是Location
左上角的中心,而不是Grid
的实际中心。为此,您需要在recenter()
中修改GridPanel
方法(第358行)。
希望这会有所帮助,如果您需要帮助从gridworld.jar
导入软件包,请告诉我们。