使用按键绑定
为了解决允许两个玩家使用不同的按键控制单独的球拍的主要问题,建议的解决方案是使用Swing 键绑定。这种方法具有以下优点:
代码示例
提供的代码示例演示了如何在 Java 应用程序中实现键绑定:
//Create a GameKeyBindings object associated with the game panel and the two paddle entities. GameKeyBindings gameKeyBindings = new GameKeyBindings(gp, player1Entity, player2Entity);
在 GameKeyBindings 类中,为每个球拍的移动定义键绑定:
//Key binding for Player 1's paddle: Up arrow key gp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_W, 0, false), "W pressed"); gp.getActionMap().put("W pressed", new AbstractAction() { @Override public void actionPerformed(ActionEvent ae) { entity.UP = true; } }); //Key binding for Player 2's paddle: Down arrow key gp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0, false), "down pressed"); gp.getActionMap().put("down pressed", new AbstractAction() { @Override public void actionPerformed(ActionEvent ae) { entity2.DOWN = true; } }); // Similar key binding definitions for releasing the keys.
Collections.synchronizedSet(new HashSet
Collections.synchronizedSet(new HashSet
在提供的代码中,同步集用于跟踪当前按下的键。游戏逻辑需要此信息来确定哪些球拍应该移动。
其他信息
以上是Swing 键绑定如何使两个玩家能够在 Java 游戏中使用不同的键控制单独的桨?的详细内容。更多信息请关注PHP中文网其他相关文章!