cari
RumahJavajavaTutorialBagaimanakah Swing KeyBindings Boleh Membolehkan Dua Pemain Mengawal Dayung Berasingan Menggunakan Kekunci Berbeza dalam Permainan Java?

How Can Swing KeyBindings Enable Two Players to Control Separate Paddles Using Different Keys in a Java Game?

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:

  • Ikatan kunci adalah berasingan daripada logik permainan yang lain dan membolehkan fleksibiliti yang lebih besar.
  • Ikatan utama adalah responsif walaupun permainan tidak berada dalam fokus, tidak seperti pendengar utama.

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()) mencipta set disegerakkan untuk menyimpan kekunci yang ditekan. Dengan menggunakan set yang disegerakkan, anda memastikan bahawa berbilang benang boleh mengakses dan memanipulasi set secara serentak tanpa menyebabkan kerosakan atau ketidakkonsistenan data.

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

  • Tidak perlu menogol benang berasingan untuk mencapai kefungsian yang diingini.
  • Pengikatan kunci ialah penyelesaian yang lebih mantap dan elegan untuk mengendalikan input kunci daripada menggunakan kunci pendengar.
  • Contoh kod yang disediakan ialah pelaksanaan yang mudah dan mudah; pengoptimuman dan penambahbaikan selanjutnya boleh ditambah mengikut keperluan.

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!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Adakah Java masih merupakan bahasa yang baik berdasarkan ciri -ciri baru?Adakah Java masih merupakan bahasa yang baik berdasarkan ciri -ciri baru?May 12, 2025 am 12:12 AM

Javaremainsagoodlanguageduetoitscontinuousevolutionandrobustecosystem.1)

Apa yang menjadikan Java hebat? Ciri dan faedah utamaApa yang menjadikan Java hebat? Ciri dan faedah utamaMay 12, 2025 am 12:11 AM

Javaisgreatduetoitsplatformindantrect, robustoopsupport, extensivelibraries, andstrongcommunity.1) platformindependenceviajvmallowscodetorunonvariousplatforms.2)

Ciri -ciri Java 5 Teratas: Contoh dan PenjelasanCiri -ciri Java 5 Teratas: Contoh dan PenjelasanMay 12, 2025 am 12:09 AM

Lima ciri utama Java adalah polimorfisme, ekspresi lambda, streamsapi, generik dan pengendalian pengecualian. 1. Polimorfisme membolehkan objek kelas yang berbeza digunakan sebagai objek kelas asas biasa. 2. Ekspresi Lambda menjadikan kod lebih ringkas, terutama sesuai untuk mengendalikan koleksi dan aliran. 3.StreamsAPI dengan cekap memproses set data yang besar dan menyokong operasi deklaratif. 4. Generik menyediakan jenis keselamatan dan kebolehgunaan semula, dan kesilapan jenis ditangkap semasa penyusunan. 5. Pengendalian Pengecualian membantu mengendalikan kesilapan dengan elegan dan menulis perisian yang boleh dipercayai.

Bagaimanakah ciri utama Java mempengaruhi prestasi dan skalabiliti?Bagaimanakah ciri utama Java mempengaruhi prestasi dan skalabiliti?May 12, 2025 am 12:08 AM

Java'stopfeaturessignificantelyedhanceitsperformanceAndscalability.1) Objek-OrientedPrincipleslikePolymorphismenableFlexiBleyDscalableCode.2)

JVM Internals: Menyelam jauh ke dalam mesin maya JavaJVM Internals: Menyelam jauh ke dalam mesin maya JavaMay 12, 2025 am 12:07 AM

Komponen teras JVM termasuk ClassLoader, Runtimedataarea dan ExecutionEngine. 1) Pemuat kelas bertanggungjawab untuk memuatkan, menghubungkan dan memulakan kelas dan antara muka. 2) Runtimedataarea mengandungi Methodarea, Heap, Stack, Pcregister dan Nativemethodstacks. 3) ExecutionEngine terdiri daripada penterjemah, Jitcompiler dan GarbageCollector, yang bertanggungjawab untuk pelaksanaan dan pengoptimuman bytecode.

Apakah ciri -ciri yang menjadikan Java selamat dan selamat?Apakah ciri -ciri yang menjadikan Java selamat dan selamat?May 11, 2025 am 12:07 AM

Java'sSafetyandSecurityArebolsteredby: 1) Strongtyping, whichPreventStype-RelatedErrors; 2) AutomaticMemoryManagementViagriageGecollection, reducingMemory-RelatedVulnerabilities;

Ciri-ciri Java Harus tahu: Meningkatkan Kemahiran Pengekodan AndaCiri-ciri Java Harus tahu: Meningkatkan Kemahiran Pengekodan AndaMay 11, 2025 am 12:07 AM

JavaoffersSeveralkeyfeaturesthatenHanceCodingsKills: 1) Objek-OrientedProgrammingallowSmodelingReal-Worldentities, exemplifiedBypolymorphism.2) ExceptleHandlingProvidesRobusRrormAragement.3)

Jvm panduan paling lengkapJvm panduan paling lengkapMay 11, 2025 am 12:06 AM

TheJvmisacrucialComponentthatrunsjavacodeByTranslatingitintomachine-specificinstructions, impak, keselamatan, andporability.1) theclassloaderloads, pautan, andinitializesclasses.2)

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Nordhold: Sistem Fusion, dijelaskan
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

SublimeText3 Linux versi baharu

SublimeText3 Linux versi baharu

SublimeText3 Linux versi terkini

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Persekitaran pembangunan bersepadu PHP yang berkuasa

SecLists

SecLists

SecLists ialah rakan penguji keselamatan muktamad. Ia ialah koleksi pelbagai jenis senarai yang kerap digunakan semasa penilaian keselamatan, semuanya di satu tempat. SecLists membantu menjadikan ujian keselamatan lebih cekap dan produktif dengan menyediakan semua senarai yang mungkin diperlukan oleh penguji keselamatan dengan mudah. Jenis senarai termasuk nama pengguna, kata laluan, URL, muatan kabur, corak data sensitif, cangkerang web dan banyak lagi. Penguji hanya boleh menarik repositori ini ke mesin ujian baharu dan dia akan mempunyai akses kepada setiap jenis senarai yang dia perlukan.

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).