Menggunakan Pengikatan Kekunci
Untuk menangani isu utama membenarkan dua pemain mengawal dayung berasingan menggunakan kekunci yang berbeza, penyelesaian yang dicadangkan adalah menggunakan Ayun Pengikat Kunci. Pendekatan ini memberikan kelebihan berikut:
Kod Contoh
Contoh kod yang disediakan menunjukkan cara melaksanakan pengikatan kunci dalam aplikasi Java anda:
//Create a GameKeyBindings object associated with the game panel and the two paddle entities. GameKeyBindings gameKeyBindings = new GameKeyBindings(gp, player1Entity, player2Entity);
Dalam kelas GameKeyBindings, pengikatan kunci ditakrifkan untuk setiap pergerakan dayung:
//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.
Penjelasan Collections.synchronizedSet(new HashSet
Baris Collections.synchronizedSet(new HashSet
Dalam kod yang disediakan, set disegerakkan digunakan untuk menjejak kekunci yang sedang ditekan. Maklumat ini diperlukan untuk logik permainan untuk menentukan dayung yang patut digerakkan.
Maklumat Tambahan
Atas ialah kandungan terperinci Bagaimanakah Swing KeyBindings Boleh Membolehkan Dua Pemain Mengawal Dayung Berasingan Menggunakan Kekunci Berbeza dalam Permainan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!