因此,我将一款游戏转换为Slick2D。机芯坏了,我不知所措。以前,我们使用KeyPressed和keyReleased方法,但现在使用Slick2D移动不能正常工作。
是的,在转换到Slick2D时,没有任何事情是正确的。首先是启动器,我之前有一个帮助主题,现在是这个。不过,另一个话题是WebStart讨厌代码的问题。
你只能使用A向右移动,而且你不能停止移动。我使用的方法是正确的吗?我怎么才能修复它?任何帮助都是非常感谢的!
如果有帮助,这里有一个指向代码的PasteBin链接!http://pastebin.com/GRH86Yuw
发布于 2011-12-17 09:55:08
我是Slick的粉丝,我很乐意帮忙。
最根本的区别是Slick是一个轮询模型,而不是输入时的事件驱动模型。基本上,在您的逻辑更新方法中,您循环遍历绑定到事件的键,并检查当前是否按下了任何键,然后触发这些事件。有很多原因,如果你愿意,我可以深入探讨,轮询往往更适合游戏,特别是在有大量密钥的情况下。这只是一种不同的方式,一种不那么复杂的方式。最大的好处是,您可以集中处理单个方法的输入,而不是将其分散到多个KeyListener实例对象中。
如果你想看看Pedestrians --一个用Slick实现的简单的行人模拟器--你可以看到一个如何在Slick中处理输入的例子。
具体地说,我在processInput方法中处理this file中的输入(第192-295行)。基本上,传入一个对GameContainer对象(包含游戏的Slick对象)的引用,从中可以获得一个到Input实例的实例,该实例允许您检查按下了哪些键、单击了哪些鼠标按键等。
https://stackoverflow.com/questions/8541654
复制相似问题