Maison >Java >javaDidacticiel >Comment Swing KeyBindings peut-il permettre à deux joueurs de contrôler des palettes distinctes à l'aide de différentes touches dans un jeu Java ?
Utilisation des raccourcis clavier
Pour résoudre le problème principal consistant à permettre à deux joueurs de contrôler des palettes distinctes à l'aide de touches différentes, la solution suggérée est d'utiliser Swing KeyBindings. Cette approche offre les avantages suivants :
Exemple de code
L'exemple de code fourni montre comment pour implémenter des raccourcis clavier dans votre application Java :
//Create a GameKeyBindings object associated with the game panel and the two paddle entities. GameKeyBindings gameKeyBindings = new GameKeyBindings(gp, player1Entity, player2Entity);
Au sein de la classe GameKeyBindings, les raccourcis clavier sont définis pour le mouvement de chaque pagaie :
//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.
Explication de Collections.synchronizedSet( nouveau HashSet
Le La ligne Collections.synchronizedSet(new HashSet
Dans le code fourni, l'ensemble synchronisé est utilisé pour suivre les touches actuellement enfoncées. Ces informations sont nécessaires à la logique du jeu pour déterminer quelles palettes doivent bouger.
Informations supplémentaires
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!