2

因此,我将游戏转换为 Slick2D。机芯坏了,我不知所措。之前,我们使用 KeyPressed 和 keyReleased 方法,但现在使用 Slick2D 移动无法正常工作。

是的,转换为 Slick2D 并没有什么进展。首先是启动器,我之前有一个帮助主题,现在是这个。不过,另一个主题是 WebStart 讨厌代码的问题。

您只能使用 A 向右移动。而且您不能停止移动。我是否使用了正确的方法?我该如何解决?任何帮助是极大的赞赏!

如果有帮助,这是代码的 PasteBin 链接!http://pastebin.com/GRH86Yuw

4

1 回答 1

3

我是 Slick 的粉丝,我很乐意提供帮助。

根本区别在于 Slick 在输入方面是一种轮询模型,而不是事件驱动模型。基本上,在您的逻辑更新方法中,您遍历绑定到事件的键,并检查当前是否按下了任何键,然后触发这些事件。出于多种原因,如果您愿意,我可以深入探讨,轮询往往更适用于游戏,尤其是在有大量按键的情况下。这只是一种不同的做事方式,并没有那么复杂。最大的好处是您可以集中输入处理单个方法,而不是让它分布在多个 KeyListener 实例对象中。

如果您想查看Pedestrians - 在 Slick 中实现的简单行人模拟 - 您可以查看如何在 Slick 中处理输入的示例。

具体来说,我在方法内部处理此文件(第 192-295 行)中的输入processInput。基本上,您传递对GameContainer对象(包含您的游戏的 Slick 对象)的引用,然后您可以从中获取实例的实例,该Input实例将允许您检查按下了哪些键、单击了哪些鼠标按钮等。

于 2011-12-17T01:55:08.477 回答