Java—为游戏添加控件的最佳方式

Java—为游戏添加控件的最佳方式,java,2d,keylistener,Java,2d,Keylistener,我正在用Java制作一个2D游戏,我使用KeyListener和一些布尔函数来检测按键。但问题是,当我按下一个键时,玩家半秒钟内不会移动,然后开始移动。有人知道如何解决这个问题吗 按公共无效键(…) { PlayerX+=3; } 任何答案都将不胜感激。在java中处理游戏控件有多种方法,但我更喜欢的方法是使用一个名为..的类。。让我们说“Key.class” 在Key.class中,我们可以有: public class Key{ // Creating the keys as simp

我正在用Java制作一个2D游戏,我使用KeyListener和一些布尔函数来检测按键。但问题是,当我按下一个键时,玩家半秒钟内不会移动,然后开始移动。有人知道如何解决这个问题吗

按公共无效键(…) { PlayerX+=3; }
任何答案都将不胜感激。

在java中处理游戏控件有多种方法,但我更喜欢的方法是使用一个名为..的类。。让我们说“Key.class”

在Key.class中,我们可以有:

public class Key{
   // Creating the keys as simply variables
   public static Key up = new Key();
   public static Key down = new Key();
   public static Key left = new Key();
   public static Key special = new Key();

   /* toggles the keys current state*/
   public void toggle(){
       isDown =  !isDown;
   }

   public boolean isDown;
}
现在我们有了一个类,如果按下某些键,我们可以访问该类,但首先我们需要确保keys.isDown函数将被正确切换。我们在实现KeyListener的类中这样做

假设我们有“Controller.class”

或者在你的情况下,我们可以把它放在主类中,并以同样的方式做,只要它在游戏循环中

if(Key.right.isDown) PlayerX += 3;

java中有多种方法可以处理游戏控件,但我更喜欢的方法是使用一个名为..的类。。让我们说“Key.class”

在Key.class中,我们可以有:

public class Key{
   // Creating the keys as simply variables
   public static Key up = new Key();
   public static Key down = new Key();
   public static Key left = new Key();
   public static Key special = new Key();

   /* toggles the keys current state*/
   public void toggle(){
       isDown =  !isDown;
   }

   public boolean isDown;
}
现在我们有了一个类,如果按下某些键,我们可以访问该类,但首先我们需要确保keys.isDown函数将被正确切换。我们在实现KeyListener的类中这样做

假设我们有“Controller.class”

或者在你的情况下,我们可以把它放在主类中,并以同样的方式做,只要它在游戏循环中

if(Key.right.isDown) PlayerX += 3;

这听起来像是操作系统中按键重复(自动重复)的正常行为。只需在任何文本编辑器中按住一个键,您就会注意到第一个字符与下一个字符之间的显示时间很短。在Windows上这是500毫秒,在其他平台上不确定。

这听起来像是操作系统中按键重复(自动重复)的正常行为。只需在任何文本编辑器中按住一个键,您就会注意到第一个字符与下一个字符之间的显示时间很短。在Windows上这是500毫秒,在其他平台上不确定。

请发布相关代码/项目信息。您是否尝试在单独的线程中分离动画和键盘输入代码?@HernanVelasquez没有,这不是问题,尽管请发布相关代码/项目信息。您是否尝试将动画和键盘输入代码分离在不同的线程中?@HernanVelasquez不,我没有,但这不是问题所在