所以,我将游戏转换为Slick2D。运动破了,我不知所措。之前,我们使用过KeyPressed和keyReleased方法,但是现在使用Slick2D运动是行不通的。
是的,转换为Slick2D没有任何结果。首先是发射器,我之前有一个帮助主题,现在这个。但是,另一个主题是WebStart讨厌代码的问题。
你只能使用A向右移动。你不能停止移动。我使用正确的方法吗?我该如何解决?任何帮助是极大的赞赏!
这是代码的PasteBin链接,如果有帮助的话! http://pastebin.com/GRH86Yuw
答案 0 :(得分:3)
我是Slick的粉丝,我很乐意提供帮助。
根本区别在于Slick是一种轮询模型,而不是输入时的事件驱动模型。基本上,在您的逻辑更新方法中,您遍历绑定到事件的键,并检查当前是否按下了任何键,然后触发这些事件。出于多种原因,如果你愿意我可以进入,轮询往往更适合游戏,特别是有大量的键。这只是一种不同的做事方式,并不复杂。最大的好处是,您可以通过单个方法获得集中式输入处理,而不是将其分布在多个KeyListener实例对象上。
如果您想查看Pedestrians - 在Slick中实现的简单行人模拟 - 您可以看到如何在Slick中处理输入的示例。
具体来说,我在processInput
方法中处理this file(第192-295行)中的输入。基本上,您传入对GameContainer
对象(包含您的游戏的Slick对象)的引用,并且从中可以获得Input
实例的实例,该实例将允许您检查哪些键是按下,点击了什么鼠标按钮等。