ホームページ >Java >&#&チュートリアル >Java ゲームで、Swing KeyBinding を使用すると、2 人のプレイヤーが異なるキーを使用して別々のパドルを制御できるようになりますか?
キー バインドの使用
2 人のプレーヤーが異なるキーを使用して別々のパドルを制御できるようにするという主な問題に対処するために、推奨される解決策は次のとおりです。スイングキーバインド。このアプローチには、次の利点があります。
コード例
提供されたコード例は、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
提供されたコードでは、同期セットは、現在どのキーが押されているかを追跡するために使用されます。この情報は、ゲーム ロジックがどのパドルを動かすかを決定するために必要です。
追加情報
以上がJava ゲームで、Swing KeyBinding を使用すると、2 人のプレイヤーが異なるキーを使用して別々のパドルを制御できるようになりますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。