Pengalaman permainan yang benar dengan API Gamepad
- API GamePad, standard W3C yang dicadangkan, menyediakan API yang konsisten merentasi pelayar untuk menghubungkan peranti input permainan seperti pengawal Xbox ke komputer untuk pengalaman berasaskan penyemak imbas.
- API Gamepad menawarkan fleksibiliti dan menyediakan akses kepada butang dan paksi dengan nilai yang dinormalisasi, dan objek GamePad menawarkan maklumat terperinci mengenai pengilang dan model GamePad yang disambungkan.
- PxGamepad adalah kelas penolong yang menyediakan perwakilan tahap yang lebih tinggi dari gamepad standard seperti pengawal Xbox One, memetakan indeks butang dan paksi kepada nama -nama biasa seperti yang dilabelkan pada pengawal Xbox.
- Walaupun API Gamepad mampu menyokong beberapa pemain dengan Gamepad mereka sendiri, penambahbaikan masa depan mungkin membolehkan pengguna mengulangi atau menyesuaikan fungsi butang pada Gamepad mereka, dan API menawarkan potensi untuk senario bukan permainan seperti memanipulasi dan menavigasi model 3D .
Artikel ini adalah sebahagian daripada siri Web Dev dari Microsoft. Terima kasih kerana menyokong rakan kongsi yang membuat SitePoint mungkin.
Permainan di web telah datang jauh dengan teknologi HTML5 seperti Canvas, WebGL, dan Webaudio. Sekarang mungkin untuk menghasilkan grafik dan bunyi kesetiaan tinggi dalam penyemak imbas. Walau bagaimanapun, untuk memberikan pengalaman permainan yang benar, anda memerlukan peranti input yang direka untuk permainan. API Gamepad adalah standard W3C yang dicadangkan, dan direka untuk menyediakan API yang konsisten di seluruh pelayar.API Gamepad membolehkan pengguna menyambungkan peranti seperti pengawal Xbox ke komputer dan menggunakannya untuk pengalaman berasaskan penyemak imbas! Jika anda mempunyai gamepad, cuba pasangkannya ke dalam komputer anda dan kemudian tekan butang. Anda akan melihat pengawal Xbox di bawah cahaya sehingga mencerminkan setiap pergerakan yang anda buat!

Tutorial ini adalah yang ketiga dalam siri pada Arcade Penerbangan - dibina untuk menunjukkan apa yang mungkin di platform web dan dalam pelayar Microsoft Edge baru dan enjin rendering EdgeHTML. Anda boleh menemui dua artikel pertama di WebGL dan API Web, ditambah kod interaktif dan contoh untuk artikel ini di flightarcade.com.
[YouTube xyaq9tpmxra]
Api fleksibelAPI Gamepad direka dengan bijak dengan fleksibiliti. Pada tahap asas, ia menyediakan akses kepada butang dan paksi. Nilai butang berkisar dari [0 .. 1] manakala paksi berkisar dari [-1 .. 1]. Semua nilai dinormalisasi kepada julat ini supaya pemaju boleh mengharapkan tingkah laku yang konsisten antara peranti.
Objek Gamepad menyediakan maklumat terperinci mengenai pengilang dan model Gamepad yang disambungkan. Lebih berguna ialah harta pemetaan yang menggambarkan jenis umum gamepad. Pada masa ini satu -satunya pemetaan yang disokong adalah standard yang sepadan dengan susun atur pengawal yang digunakan oleh banyak konsol permainan popular seperti Xbox.
Pemetaan pengawal standard mempunyai dua batang, masing -masing diwakili oleh 2 paksi (x dan y). Ia juga termasuk d-pad, 4 butang permainan, butang atas, dan pencetus: semuanya diwakili sebagai butang dalam API Gamepad.
Pengawal Xbox semasa melaporkan keadaan butang sebagai 0 (keadaan biasa) atau 1 (ditekan). Walau bagaimanapun, anda boleh membayangkan bahawa pengawal masa depan boleh melaporkan jumlah daya yang digunakan untuk setiap butang tekan.
Xbox D-Pad juga melaporkan nilai diskret (0 atau 1), tetapi tongkat memberikan nilai berterusan merentasi seluruh julat paksi [-1 .. 1]. Ketepatan tambahan ini menjadikannya lebih mudah untuk terbang pesawat dalam misi arked penerbangan kami.
pxgamepad
pelbagai butang dan paksi yang disediakan oleh API Gamepad adalah pemikiran ke hadapan dan sempurna sebagai API tahap rendah. Walau bagaimanapun, apabila menulis permainan, adalah baik untuk mempunyai perwakilan tahap yang lebih tinggi dari gamepad standard seperti pengawal Xbox One. Kami mencipta kelas pembantu bernama PxGamepad yang memetakan butang dan indeks paksi kepada nama yang lebih biasa seperti yang dilabelkan pada pengawal Xbox.
Kami akan berjalan melalui beberapa keping perpustakaan yang menarik, tetapi kod sumber penuh (lesen MIT) boleh didapati di sini: https://github.com/thinkpixellab/pxgamepad
API Gamepad standard menyediakan keadaan butang sebagai pelbagai butang. Sekali lagi, API ini direka untuk fleksibiliti yang membolehkan pengawal dengan pelbagai butang. Walau bagaimanapun, semasa menulis permainan, lebih mudah untuk menulis dan membaca kod yang menggunakan nama butang yang dipetakan standard.
Contohnya, dengan API HTML5 Gamepad, inilah kod untuk memeriksa sama ada pencetus kiri sedang ditekan:



Satu lagi batasan API HTML5 GamePad ialah tidak menyediakan peristiwa tahap butang. Adalah perkara biasa bagi pemaju permainan untuk mengaktifkan satu acara untuk menekan butang. Dalam arked penerbangan, butang pencucuhan dan brek adalah contoh yang baik. PxGamepad Watches Button State dan membolehkan pemanggil mendaftar untuk pemberitahuan pada pelepasan butang.

Berikut adalah senarai penuh butang bernama yang disokong oleh pxGamepad:
- a
- x
- y
- lefttop
- righttop
- lefttrigger
- righttrigger
- pilih
- Mula
- leftstick
- kanan
- dpadup
- dpaddown
- dpadleft
- dpadright
- Mendapatkan Gamepad semasa
Terdapat dua kaedah untuk mendapatkan objek Gamepad. API GamePad menambah kaedah ke objek Navigator bernama GetGamePads () yang mengembalikan pelbagai gamepads yang disambungkan. Terdapat juga peristiwa gamepadconnected dan gamepaddisconnected baru yang dipecat apabila gamepad baru telah disambungkan atau diputuskan. Sebagai contoh, inilah cara penyokong PXGamepad menyimpan Gamepad yang terakhir:
Dan di sini adalah pembantu untuk mendapatkan gamepad standard pertama menggunakan navigator.getgamepads () API:

Kelas Helper PxGamepad direka untuk senario mudah di mana pengguna tunggal bermain permainan dengan gamepad dipetakan standard. Pelayar terkini, seperti Microsoft Edge, menyokong sepenuhnya API W3C Gampepad. Walau bagaimanapun, versi lama beberapa pelayar lain hanya menyokong kepingan spesifikasi yang muncul. Pxgamepad mendengar untuk acara GamePadConnected dan jatuh kembali untuk meminta senarai semua gamepad jika diperlukan.

Masa Depan Gamepad
Walaupun pxGamepad memberi tumpuan kepada senario yang mudah dan paling biasa, API Gamepad mampu menyokong pelbagai pemain, masing -masing dengan gamepad mereka sendiri. Satu peningkatan yang mungkin untuk pxGamepad mungkin menyediakan kelas gaya pengurus yang menjejaki sambungan pelbagai gamepad dan memetakannya kepada beberapa pemain dalam permainan. Satu lagi mungkin untuk membolehkan pengguna mengulangi atau menyesuaikan fungsi butang pada gamepad mereka.
Kami juga teruja dengan potensi gamepad untuk senario bukan permainan. Dengan kebangkitan WebGL, kami melihat pelbagai kegunaan inovatif untuk 3D di web. Ini mungkin bermakna meneroka rantau Mt. Everest dalam 3D dengan Glacierworks. Atau melihat koleksi Assyrian Muzium British berkat usaha Cyark untuk secara digital mengekalkan tapak dan artifak dunia yang penting.
Semasa pembangunan arked penerbangan, kami sering menggunakan pengisar dan alat 3D lain untuk memproses model untuk Babylon.js. Sesetengah pemaju dan artis menggunakan peranti yang dipanggil tetikus 3D untuk membantu memanipulasi dan menavigasi model 3D. Peranti ini menjejaki pergerakan satu tombol melalui enam paksi! Mereka menjadikannya sangat mudah dan cepat memanipulasi model. Di luar permainan, mereka digunakan dalam pelbagai aplikasi menarik dari kejuruteraan kepada pengimejan perubatan. Semasa menambah sokongan GamePad ke Arcade Penerbangan, kami terkejut mengetahui bahawa API Gamepad mengesan ruang angkasa 3D kami dan menyediakan data pergerakan untuk semua enam paksi!
Ia menarik untuk membayangkan semua kemungkinan yang ditawarkan API Gamepad baru. Sekarang adalah masa yang tepat untuk bereksperimen dengan API Gamepad baru dan menambah kawalan ketepatan dan banyak keseronokan untuk permainan atau aplikasi seterusnya!
lebih banyak tangan dengan JavaScript
Microsoft mempunyai banyak pembelajaran percuma di banyak topik JavaScript sumber terbuka dan kami berada dalam misi untuk membuat lebih banyak lagi dengan Microsoft Edge. Berikut adalah beberapa yang perlu diperiksa:
- Microsoft Edge Web Summit 2015 (siri lengkap apa yang diharapkan dengan pelayar baru, ciri platform web baru, dan penceramah tetamu dari komuniti)
- membina // membina/dan Windows 10 (termasuk enjin JavaScript baru untuk tapak dan aplikasi)
- Memajukan JavaScript tanpa melanggar web (Keynote baru -baru ini Christian Heilmann)
- aplikasi web yang dihoskan dan inovasi platform web (menyelam dalam topik seperti manifold.js)
- Petua Prestasi Praktikal Untuk menjadikan HTML/JavaScript anda lebih cepat (siri 7 bahagian dari reka bentuk responsif ke permainan kasual ke pengoptimuman prestasi)
- Platform Web Modern Jumpstart (asas -asas HTML, CSS, dan JS)
dan beberapa alat percuma untuk memulakan: Kod Visual Studio, Percubaan Azure, dan Alat Ujian Cross-Browser-semuanya tersedia untuk Mac, Linux, atau Windows.
Artikel ini adalah sebahagian daripada siri Web Dev Tech dari Microsoft. Kami teruja untuk berkongsi Microsoft Edge dan enjin rendering EdgeHTML baru dengan anda. Dapatkan mesin maya percuma atau ujian dari jauh pada Mac, iOS, Android, atau peranti Windows @ moden.ie.
soalan yang sering ditanya mengenai API GamepadApakah API Gamepad? API ini direka untuk bekerja dengan mana -mana jenis gamepad, menjadikannya alat yang serba boleh untuk pemaju permainan. Ia menyediakan cara untuk berinteraksi dengan gamepad secara langsung, tanpa perlu melalui perisian atau pemandu pihak ketiga.
Bagaimanakah API Gamepad berfungsi? Ia melakukan ini dengan mendengar peristiwa tertentu, seperti menekan butang atau pergerakan kayu bedik, dan kemudian mencetuskan tindakan yang sama dalam permainan. Ini membolehkan pengalaman permainan yang lebih mendalam dan interaktif. dalam kod permainan anda. Ini melibatkan memanggil fungsi API dan mendengar peristiwa yang dihasilkannya. Anda kemudian boleh menggunakan peristiwa ini untuk mengawal aspek permainan anda, seperti pergerakan watak atau navigasi menu. bersesuaian dengan pelbagai gamepad. Ini termasuk gamepad standard dengan butang dan joysticks, serta pengawal yang lebih khusus seperti roda stereng atau tongkat penerbangan. API juga boleh mengendalikan pelbagai gamepads sekaligus, yang membolehkan permainan multiplayer. Untuk membuat permainan yang lebih kompleks. Sebagai contoh, anda boleh menggunakan API GamePad untuk mengawal pergerakan watak, semasa menggunakan API lain untuk mengendalikan fizik atau grafik permainan. adalah antara muka berasaskan web, tidak semua pelayar kini menyokongnya. Walau bagaimanapun, pelayar yang paling moden, termasuk Chrome, Firefox, dan Edge, menyokong API Gamepad. Adalah idea yang baik untuk memeriksa sokongan penyemak imbas semasa untuk API sebelum memulakan pembangunan. API Gamepad termasuk mengesan gamepad yang betul, mengendalikan pelbagai gamepad, dan berurusan dengan susun atur butang yang berbeza. Isu -isu ini biasanya dapat diselesaikan dengan berhati -hati membaca dokumentasi API dan menguji permainan dengan teliti. Penyemak imbas desktop, ia juga boleh digunakan untuk permainan mudah alih. Walau bagaimanapun, ini memerlukan gamepad yang serasi dengan peranti mudah alih, dan pengalaman pengguna mungkin tidak lancar seperti permainan desktop. Boleh menguji API Gamepad dengan menyambungkan Gamepad ke komputer anda dan menjalankan permainan yang menggunakan API. Anda kemudian boleh tekan butang pada gamepad dan lihat jika tindakan yang sepadan dicetuskan dalam permainan.
di mana saya boleh mengetahui lebih lanjut mengenai API Gamepad? Ini termasuk dokumentasi API rasmi, serta tutorial dan panduan di pelbagai laman web pembangunan permainan. Anda juga boleh mencari contoh permainan yang menggunakan API untuk melihatnya dalam tindakan.
Atas ialah kandungan terperinci Pengalaman permainan yang benar dengan API Gamepad. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Artikel membincangkan membuat, menerbitkan, dan mengekalkan perpustakaan JavaScript, memberi tumpuan kepada perancangan, pembangunan, ujian, dokumentasi, dan strategi promosi.

Artikel ini membincangkan strategi untuk mengoptimumkan prestasi JavaScript dalam pelayar, memberi tumpuan kepada mengurangkan masa pelaksanaan dan meminimumkan kesan pada kelajuan beban halaman.

Soalan dan penyelesaian yang sering ditanya untuk percetakan tiket kertas terma depan dalam pembangunan front-end, percetakan tiket adalah keperluan umum. Walau bagaimanapun, banyak pemaju sedang melaksanakan ...

Artikel ini membincangkan debugging JavaScript yang berkesan menggunakan alat pemaju pelayar, memberi tumpuan kepada menetapkan titik putus, menggunakan konsol, dan menganalisis prestasi.

Tidak ada gaji mutlak untuk pemaju Python dan JavaScript, bergantung kepada kemahiran dan keperluan industri. 1. Python boleh dibayar lebih banyak dalam sains data dan pembelajaran mesin. 2. JavaScript mempunyai permintaan yang besar dalam perkembangan depan dan stack penuh, dan gajinya juga cukup besar. 3. Faktor mempengaruhi termasuk pengalaman, lokasi geografi, saiz syarikat dan kemahiran khusus.

Artikel ini menerangkan cara menggunakan peta sumber untuk debug JavaScript minifikasi dengan memetakannya kembali ke kod asal. Ia membincangkan membolehkan peta sumber, menetapkan titik putus, dan menggunakan alat seperti Chrome Devtools dan Webpack.

Bagaimana cara menggabungkan elemen array dengan ID yang sama ke dalam satu objek dalam JavaScript? Semasa memproses data, kita sering menghadapi keperluan untuk mempunyai id yang sama ...

Perbincangan mendalam mengenai punca-punca utama perbezaan dalam output konsol.log. Artikel ini akan menganalisis perbezaan hasil output fungsi Console.log dalam sekeping kod dan menerangkan sebab -sebab di belakangnya. � ...
