![Membuat Pengawal Permainan Fizikal: 10 Langkah (dengan Gambar) Membuat Pengawal Permainan Fizikal: 10 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/002/image-3500-200-j.webp)
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01
![Membuat Pengawal Permainan Fizikal Membuat Pengawal Permainan Fizikal](https://i.howwhatproduce.com/images/002/image-3500-201-j.webp)
![Membuat Pengawal Permainan Fizikal Membuat Pengawal Permainan Fizikal](https://i.howwhatproduce.com/images/002/image-3500-202-j.webp)
Ketika Nintendo Wii dilancarkan, para pemain didorong, tidak perlu, meninggalkan sofa dan melompat, menari, dan bergoyang untuk memperoleh mata dalam permainan pilihan mereka. Walaupun terdapat kurva belajar yang curam dalam membangun Wii, mudah untuk membuat peranti khusus yang memungkinkan anda mengendalikan permainan dengan melompat secara fizikal pada bantalan tekanan pada waktu yang sesuai.
Petunjuk ini menunjukkan bagaimana saya menyesuaikan permainan 'Space Bounce' (boleh dimainkan secara langsung di https://marquisdegeek.com/spacebounce/ dengan sumber di https://github.com/MarquisdeGeek/SpaceBounce) untuk menggunakan pengawal fizikal.
Bekalan
- Arduino
- Dua tikar tekanan (tambang dari Maplin
- Dua perintang, untuk tikar tekanan (100 K, tetapi kebanyakannya baik)
- Dua LED (pilihan)
- Dua perintang, untuk LED (100 K, tetapi kebanyakannya baik. Juga pilihan)
- Komputer riba
Langkah 1: Lompat Sekitar
![Lompat Sekitar! Lompat Sekitar!](https://i.howwhatproduce.com/images/002/image-3500-203-j.webp)
Saya mulakan dengan merancang antara muka melompat dan, ketika meninjau permainan, menyedari bahawa memiliki dua tikar akan mengungkapkan idea utamanya. Maksudnya, anda berdiri di atas tikar kiri untuk mensimulasikan perasaan memegang dinding kiri dan, pada saat yang sesuai, melompat ke tikar kanan, dan watak di layar anda akan melakukan perkara yang sama.
Langkah 2: Menghubungkan Pad
![Menyambung Pad Menyambung Pad](https://i.howwhatproduce.com/images/002/image-3500-204-j.webp)
![Menyambung Pad Menyambung Pad](https://i.howwhatproduce.com/images/002/image-3500-205-j.webp)
Oleh itu, saya membeli dua tikar, dan mula bekerja. Tikar tekanan yang ditunjukkan di sini adalah yang paling sederhana (dan paling murah!) Saya dapati, dengan harga £ 10 setiap satu. Mereka mempunyai empat wayar, dua di antaranya berfungsi seperti suis sederhana: semasa anda berdiri di atas tikar, sambungan dibuat, dan ketika anda melompat, ia rosak. Saya memasukkan ini ke Arduino dengan rangkaian asas ini.
Langkah 3: Melancarkan Fantastic Light
![Menyandarkan Cahaya yang Hebat Menyandarkan Cahaya yang Hebat](https://i.howwhatproduce.com/images/002/image-3500-206-j.webp)
Ia berjaya, tetapi tidak begitu memberi inspirasi. Oleh itu, saya menambahkan beberapa LED untuk menunjukkan keadaan setiap tikar tekanan.
LED tidak diperlukan untuk bermain permainan, tetapi dengan menambahkannya ke litar, saya dapat dengan mudah melihat apa yang difikirkan litar adalah keadaan semasa. Oleh itu, jika permainan tidak bertindak balas dengan betul, saya dapat menyelesaikan masalahnya dengan masalah litar, perisian Arduino, atau logik permainan.
Langkah 4: Memulakan Kod
Memandangkan permainan aslinya ada dalam JavaScript, memutuskan untuk menulis program NodeJS yang mendengarkan perubahan dalam keadaan tekanan, dan mengirimkan data melalui soket web ke klien permainan.
Pertama, pasang firmata standard ke Arduino anda supaya kami dapat menjalankan pelayan Node pada PC dan menggunakan perpustakaan Johnny Five untuk mendengar perubahan keadaan dari Arduino. Kemudian tambahkan Express untuk menyediakan kandungan permainan.
Keseluruhan kod pelayan kelihatan seperti ini:
const express = memerlukan ('express');
const app = express (); const http = memerlukan ('http'); pelayan const = http.createServer (aplikasi); const io = memerlukan ('socket.io'). dengar (pelayan); const arduino = memerlukan ('arduino-controller'); server.listen (3000, function () {console.log ('Express server listen …');}); app.use ('/', express.static ('app')); const lima = memerlukan ("johnny-five"); const board = new five. Board ({repl: false}); board.on ("siap", fungsi () {let green = new lima. Led (5); let red = new lima. Led (6); let kiri = baru lima. Pin (2); let right = new lima. Pin (3); io.on ('connect', function (socket) {console.log ('Kami disambungkan!'); Let lastLeft = false; let lastRight = false; five. Pin.read (kiri, (err, val) => {if (val) {green.on ();} lain {green.off ();} if (val! == lastLeft) {lastLeft = val; let state = {side: 'left', state: val? 'down': 'up'} socket.emit ('arduino:: state', JSON.stringify (state), {untuk: 'Everyone'});}}) lima. Pin.read (kanan, (err, val) => {if (val) {red.on ();} other {red.off ();} // if (val! == lastRight) {lastRight = val; let state = {side: 'right', state: val? 'down': 'up'} socket.emit ('arduino:: state', JSON.stringify (state), {untuk: 'Everyone'});}})})); });
Dan dijalankan dengan:
pelayan nod.js
Langkah 5: Menyesuaikan Permainan
Masalah pertama ialah antara muka; bagaimana anda 'klik' pada butang main apabila semua yang anda boleh lakukan adalah melompat? Saya menyelesaikannya dengan menghilangkan semua butang lain! Saya kemudian boleh mencetuskan butang yang tersisa setiap kali pemain melompat, dengan mendengar acara 'naik'.
soket = io (); socket.on ('arduino:: state', function (msg) {let data = JSON.parse (msg); if (data.state === 'up') {// kita melompat!}});
Dari sini saya dapat memasuki permainan, dan menggunakan pad untuk sesuatu yang lebih menyeronokkan - permainan itu sendiri.
Langkah 6: Menukar Kod Lompat Pemain
Kali ini saya perlu berurusan dengan setiap pad secara berasingan, dan membuat watak mula melompat setiap kali kaki pemain meninggalkan pad. Masa untuk watak di layar melintasi batang lombong lebih lama daripada masa pemain melompat dari satu sisi ke sisi. Ini adalah perkara yang baik, kerana memberi peluang kepada pemain untuk mendapatkan kembali keseimbangan mereka, periksa kedudukan mereka, dan perhatikan pemain menyelesaikan lompatan di layar. Sekiranya ini tidak berlaku, saya akan memperlahankan pemain.
soket = io ();
socket.on ('arduino:: state', fungsi (msg) {
biarkan data = JSON.parse (msg); jika (data.side === 'kiri' && data.state === 'ke atas') {// kami melompat dari sebelah kiri}});
Langkah 7: Menukar Hasil
Dengan mekanisme input berfungsi, saya perlu mengusahakan output. Permainan dimainkan dengan baik di tablet atau telefon, kerana memenuhi layar. Tetapi, ketika anda melompat-lompat, terlalu kecil untuk dilihat, jadi kawasan permainan di skrin perlu diperbesar. Banyak!
Malangnya, memperbesar semua aset grafik adalah tugas yang sangat memakan masa. Jadi, saya menipu! Oleh kerana permainan tidak perlu memahami kedudukan X, Y pada klik tetikus, atau acara sentuhan, saya boleh skala semula keseluruhan kanvas dengan mudah!
Ini melibatkan peretasan pada CSS dan JavaScript sehingga objek kanvas HTML5 yang ada berjalan di skrin penuh.
Tambahan pula, permainan ini dimainkan dalam mod potret yang bermaksud untuk menggunakan maksimum harta tanah layar yang kita perlukan untuk memutar kanvas sebanyak 90 darjah.
#SGXCanvas {
kedudukan: mutlak; z-index: 0; ubah: putar (-90deg); transform-origin: kanan atas; lebar: automatik; }
Langkah 8: Ia Berfungsi
![Ianya berfungsi! Ianya berfungsi!](https://i.howwhatproduce.com/images/002/image-3500-207-j.webp)
Untuk permainan pertama saya memiringkan komputer riba di sebelahnya, dan bermain seperti ini.
Langkah 9: Menyiapkan Bilik
![Menyiapkan Bilik Menyiapkan Bilik](https://i.howwhatproduce.com/images/002/image-3500-208-j.webp)
Membangun pengawal fizikal hanyalah permulaan perjalanan, bukan akhir. Ruang fizikal selebihnya perlu dipertimbangkan.
Pertama, tikar tekanan bergerak di lantai ketika anda mendarat di atasnya. Ini mudah diperbaiki dengan beberapa pad melekit dua sisi. Mereka berfungsi dengan baik, tetapi mungkin tidak tahan banyak keausan.
Seterusnya, komputer riba kelihatan agak konyol, yang mengalihkan perhatian anda dari permainan itu sendiri. Oleh itu, TV dari ruang rehat "dipinjam" dan dibawa ke MakerSpace tempatan, di mana ia diposisikan di dinding dan dihubungkan.
Pada masa akan datang adalah baik untuk menambahkan jejak kaki ke tikar tekanan (mungkin cetakan bulan pertama Neil Armstrong!) Untuk membimbing pemain. Casing dan surround TV yang lebih baik akan menambahkan nuansa. Mungkin anda yang mempunyai banyak waktu dan ruang dapat membuat muka batu mache kertas, diletakkan di kedua-dua sisi tikar, untuk meniru rasa sesak yang jatuh dari batang ranjau!
Langkah 10: Selesai
![](https://i.ytimg.com/vi/Gd82hZeIhYs/hqdefault.jpg)
Dan di sana anda memilikinya. Projek hari yang mudah yang meningkatkan permainan asli, dan membuat anda tetap cergas semasa memainkannya!
Anda juga boleh menggunakan Makey Makey yang secara langsung mensimulasikan penekanan tombol yang digunakan dalam permainan asal, untuk meminimumkan sebahagian daripada karya ini. Tetapi itu dibiarkan sebagai latihan untuk pembaca:)
Semua kod ada di cawangan khas di repo Space Bounce:
Disyorkan:
Cara Membuat Permainan Berbilang Pemain Dengan Pengawal Arduino: 6 Langkah
![Cara Membuat Permainan Berbilang Pemain Dengan Pengawal Arduino: 6 Langkah Cara Membuat Permainan Berbilang Pemain Dengan Pengawal Arduino: 6 Langkah](https://i.howwhatproduce.com/images/001/image-1089-17-j.webp)
Cara Membuat Permainan Berbilang Pemain Dengan Pengawal Arduino: Pernahkah anda terfikir bagaimana pembangun permainan membuat permainan luar biasa yang orang gemar bermain? Baiklah, Hari ini saya akan memberi anda sedikit petunjuk mengenainya dengan membuat permainan berbilang pemain kecil yang akan dikendalikan oleh salah satu kontroversi Arduino
Zum Mesyuarat Butang Bisu Fizikal: 7 Langkah (dengan Gambar)
![Zum Mesyuarat Butang Bisu Fizikal: 7 Langkah (dengan Gambar) Zum Mesyuarat Butang Bisu Fizikal: 7 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/001/image-119-42-j.webp)
Butang Bisu Mesyuarat Zum Mesyuarat: Jika anda menggunakan perjumpaan zum untuk bekerja atau sekolah butang ini adalah untuk anda! Tekan butang untuk menukar bisu anda, atau tekan butang ke bawah untuk meninggalkan mesyuarat (atau akhiri jika anda adalah tuan rumah). perkara yang hebat ialah ia berfungsi walaupun Zoom anda
Pengawal Permainan DIY Berasaskan Arduino - Pengawal Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah
![Pengawal Permainan DIY Berasaskan Arduino - Pengawal Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah Pengawal Permainan DIY Berasaskan Arduino - Pengawal Permainan Arduino PS2 - Bermain Tekken Dengan Gamepad Arduino DIY: 7 Langkah](https://i.howwhatproduce.com/images/011/image-30363-j.webp)
Pengawal Permainan DIY Berasaskan Arduino | Pengawal Permainan Arduino PS2 | Bermain Tekken Dengan Gamepad Arduino DIY: Hai kawan-kawan, bermain permainan selalu menyeronokkan tetapi bermain dengan permainan peribadi DIY Controller anda lebih menggembirakan. Oleh itu, kami akan menjadikan Pengawal permainan menggunakan arduino pro micro dalam arahan ini
Gen 2 (Terapi Fizikal) Peranti Robotik: 7 Langkah (dengan Gambar)
![Gen 2 (Terapi Fizikal) Peranti Robotik: 7 Langkah (dengan Gambar) Gen 2 (Terapi Fizikal) Peranti Robotik: 7 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/004/image-11164-j.webp)
Peranti Robotik Gen 2 (Terapi Fizikal): Ringkasan: Tujuan Gen 2 adalah untuk membantu menggerakkan pergelangan tangan pesakit yang telah rosak akibat kemalangan dengan menarik tangan mereka ke dalam dan ke luar. Pada asalnya, Gen 2 dibuat untuk pertandingan AT & T 2017 Developer Summit, maka saya memutuskan untuk membuat
Sistem Interaksi Fizikal - PlateaPlayer: 19 Langkah (dengan Gambar)
![Sistem Interaksi Fizikal - PlateaPlayer: 19 Langkah (dengan Gambar) Sistem Interaksi Fizikal - PlateaPlayer: 19 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/001/image-2003-60-j.webp)
Sistem Interaksi Fizikal - PlateaPlayer: Projek ini menerangkan proses yang diikuti untuk merancang dan mengembangkan pelaksanaan perkakasan interaksi pengkomputeran fizikal pemain video interaktif yang bertujuan untuk video & pelajar televisyen digital Universidad Aut & oacute