Verwenden von Tastenkombinationen
Um das Hauptproblem zu lösen, das darin besteht, zwei Spielern die Steuerung verschiedener Paddles mit unterschiedlichen Tasten zu ermöglichen, besteht die vorgeschlagene Lösung in der Verwendung Swing KeyBindings. Dieser Ansatz bietet die folgenden Vorteile:
Codebeispiel
Das bereitgestellte Codebeispiel zeigt, wie Sie Tastenkombinationen in Ihrer Java-Anwendung implementieren:
//Create a GameKeyBindings object associated with the game panel and the two paddle entities. GameKeyBindings gameKeyBindings = new GameKeyBindings(gp, player1Entity, player2Entity);
Innerhalb der GameKeyBindings-Klasse werden Tastenkombinationen für die Bewegung jedes Paddles definiert:
//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.
Erklärung der Sammlungen. synchronisiertSet(new HashSet
The Die Zeile „Collections.synchronizedSet(new HashSet
Im bereitgestellten Code wird der synchronisierte Satz verwendet, um zu verfolgen, welche Tasten aktuell gedrückt werden. Diese Informationen sind für die Spiellogik erforderlich, um zu bestimmen, welche Paddel sich bewegen sollen.
Zusätzliche Informationen
Das obige ist der detaillierte Inhalt vonWie können Swing KeyBindings es zwei Spielern ermöglichen, in einem Java-Spiel separate Paddles mit unterschiedlichen Tasten zu steuern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!