Java 2D游戏角色行走?
我正在使用键绑定,如下面的箭头键:Java 2D游戏角色行走?,java,2d,Java,2d,我正在使用键绑定,如下面的箭头键: public class Bottom extends AbstractAction { private GameScreen gameScreen; public Bottom (GameScreen p) { this.gameScreen = p; this.gameScreen.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put( KeyStrok
public class Bottom extends AbstractAction {
private GameScreen gameScreen;
public Bottom (GameScreen p) {
this.gameScreen = p;
this.gameScreen.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(
KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0), "Bottom");
}
@Override
public void actionPerformed(ActionEvent e) {
this.gameScreen.getMovement().moveDown();
}
}
然后我通过movement.java检测它们:
public class Movement {
private Player player;
public Movement(Player p) {
this.player = p;
}
public void moveRight() {
}
public void moveLeft() {
}
public void moveUp() {
}
public void moveDown() {
}
public void jump() {
this.player.jump();
}
}
在这里处理:
public class Keybinds {
private GameScreen panel;
public Keybinds(GameScreen game) {
this.panel = game;
this.addKeybinds();
}
private void addKeybinds() {
addKey("Bottom", new Bottom(this.panel));
addKey("Space", new Space(this.panel));
}
private void addKey(String bind, AbstractAction a) {
this.panel.getActionMap().put(bind, a);
}
}
无论如何,操作系统默认有一个按键重复计时器,所以当我点击一个按键时,它是1.3秒左右,然后继续重复。我正在努力使我的比赛顺利进行
我的游戏没有跑步,只有步行,但我不知道我该怎么做
我可以添加行走队列,这样它就可以添加请求的方向&然后是一个循环,循环遍历行走队列并执行此操作,但是当按键开始每毫秒重复一次,或者在主延迟后idk重复延迟时,它会添加如此多的行走队列,你知道,我的角色会走得很远。我想添加一个计时器,这样它就可以每1秒添加一个新队列,但是我该怎么做呢?还是有更好的方法添加步行系统?编辑:如果已经有解释,则无需解释。
不要使用键盘侦听器。Swing设计用于
键绑定
我想加一个计时器
是的,您应该使用计时器,这样您就不必依赖操作系统密钥的重复率
有关更多信息以及使用键绑定和计时器的示例,请参阅