所以我正在制作一个基本的 2D 游戏,我正在使用路径将玩家移动到某个点。我被限制为 800 x 600 的窗口大小,并且我希望路径在 X 坐标 1400 处完成。当路径继续通过 800 X 点时,如何使画布向左滚动。
我想到的另一个解决方案是让路径花费更长的时间,并且只让背景滚动来给人一种我想要实现的错觉。但是,我仍然更喜欢第一种选择。
所以我正在制作一个基本的 2D 游戏,我正在使用路径将玩家移动到某个点。我被限制为 800 x 600 的窗口大小,并且我希望路径在 X 坐标 1400 处完成。当路径继续通过 800 X 点时,如何使画布向左滚动。
我想到的另一个解决方案是让路径花费更长的时间,并且只让背景滚动来给人一种我想要实现的错觉。但是,我仍然更喜欢第一种选择。
有两种解决方案:
您可以将画布包裹在ScrollPane中。请注意,您可以隐藏滚动条并以编程方式滚动视口(例如,让玩家角色始终居中)。
您可以在玩家每次移动时刷新画布并渲染与“世界原点”相关的所有内容。在任何其他渲染命令之前使用g.translate(-world.x,world.y)来执行此操作。注意负 X 坐标。