- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用按键绑定(bind),如下所示,例如底部箭头键:
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();
}
}
然后我通过 moving.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 秒左右,然后继续重复。我正在努力让我的游戏顺利行走。
我的游戏没有运行,只有步行,但我不知道该怎么做。
我可以添加步行队列,这样它就会添加所请求的方向,然后是一个循环遍历步行队列并执行此操作的循环,但是当按键开始每毫秒重复一次或在主延迟之后重复延迟时,它会增加如此多的步行队列,你知道,我的角色会走得很远。我想添加一个计时器,这样它就可以每 1 秒添加一个新队列或类似的东西,但我该怎么做呢?或者有更好的添加行走系统的方法吗?
最佳答案
不要使用 KeyListener。 Swing 被设计为与按键绑定(bind)
一起使用。
I thought of adding a timer,
是的,您应该使用计时器,这样您就不会依赖于操作系统 key 重复率。
参见Motion With the Keyboard了解更多信息以及使用按键绑定(bind)和计时器的示例。
关于Java 2D游戏角色行走?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21799366/
我正在尝试让 Sprite 在 Canvas 上走过背景图像。理想情况下,我会在一张 Canvas 上完成这一切,但使用两张 Canvas 似乎更高效、更容易。 到目前为止我所拥有的: Fiddle
哦,嗨。我是一名初级 Java 开发人员,在空闲时间从事一些基于 2D 图 block 的游戏。现在我正在尝试实现游戏模型中非常基本的东西 - 各种类型的对象如何彼此交互。我希望有一天添加网络支持,所
我们如何使用 CoreMotion 数据检测用户正在驾驶/步行/运行/静止。我们可以使用 CMMotionActivityManager 获取 iPhone 5s 中的用户事件。但是如何进入低版本设备
我是一名优秀的程序员,十分优秀!