Video: Cara Membuat Tag Video Youtube yang Benar 2024
Setelah sprite mulai bergerak, selalu ada kemungkinan mereka akan meninggalkan batas layar. Biasanya, pengembang game HTML5 merespons dengan salah satu dari lima cara: membungkus, memantul, berhenti, mati, atau melanjutkan. Perpustakaan simpleGame memiliki rutinitas pengecekan batas yang memungkinkan Anda menentukan perilaku default mana yang akan digunakan. Properti yang terikat pada sprite mengindikasikan tindakan mana yang harus digunakan. Anda bisa menggunakan pemeriksa batas untuk melakukan hal berikut:
-
Tentukan batasnya.
Perbatasan ditentukan oleh lebar kanvas.
-
Periksa untuk melihat apakah pengguna berada di luar perbatasan
Kemudian, serangkaian variabel lain dibuat yang mengandung nilai Boolean yang menunjukkan apakah sprite itu salah satu dari batas: offRight, offLeft, offTop, dan offBottom. Gunakan dasar jika pernyataan untuk menentukan apakah sprite tidak aktif di layar dengan salah satu cara berikut.
-
Tentukan tindakan batas.
Gunakan pernyataan sederhana jika menentukan tindakan batas yang saat ini ditetapkan untuk sprite.
-
Jika boundAction adalah WRAP:
Ubah variabel x atau y ke sisi yang berlawanan, tapi tinggalkan nilai dx dan dy saja.
-
Jika bindingAction adalah BOUNCE:
Balikkan jika sprite memantul dari atas atau bawah, dan dx jika sprite memantul dari kiri atau kanan. Tidak perlu mengubah x atau y secara langsung.
-
Jika boundAction adalah STOP:
Cukup atur kecepatan ke nol terlepas dari batas mana yang keluar.
-
Jika boundAction DIE:
Tetapkan kecepatan ke nol dan panggil metode sprite's hide (). Hal ini akan menyebabkan sprite hilang dan tidak lagi dipertimbangkan dalam perhitungan tumbukan.
-
Sanksi terikat lainnya dianggap LANJUTKAN.
Tidak ada tindakan yang diperlukan di sini karena sprite akan terus bergerak meskipun tidak terlihat. Jika ini adalah efek yang diinginkan, Anda harus menunjukkan kepada pengguna di mana sprite berada, atau memberikan beberapa cara agar sprite dikembalikan.
Berikut adalah bagian dari kode untuk rutin pengecekan tabrakan:
offRight = false; offLeft = false; offTop = false; offBottom = false; Jika (ini x = rightBorder) {offRight = true;} if (this.x bottomBorder) {offBottom = true;} if (this. y <0) {offTop = true;} if (this. boundAction == WRAP) {if (offRight) {ini x = leftBorder;} // akhiri jika if (offBottom) {this. y = topBorder;} // akhiri jika if (offLeft) {this. x = rightBorder;} // akhiri jika if (offTop) {this. y = bottomBorder;}} else if (this. boundAction == BOUNCE) {if (offTop || offBottom) {this.dy * = -1; ini. calcSpeedAngle (); ini. imgAngle = ini moveAngle;} jika (offLeft || offRight) {this. dx * = -1; ini. calcSpeedAngle (); ini. imgAngle = ini moveAngle;}} else if (this. boundAction == STOP) {if (offLeft || offRight || offTop || offBottom) {ini. setSpeed (0);}} else if (this. boundAction == DIE) {if (offLeft || offRight || offTop || offBottom) {this. menyembunyikan(); ini. Jika Anda ingin mengubah tindakan batas sprite di simpleGame, Anda dapat menggunakan metode setBoundAction () untuk melakukannya.
Perhatikan bahwa beberapa situasi mungkin memerlukan perilaku yang berbeda. Misalnya, Anda mungkin ingin membungkus sisi tapi berhenti di bagian atas atau bawah. Jika Anda memerlukan perilaku yang lebih spesifik, cukup buat metode checkBounds () baru untuk sprite Anda. Namun, Anda harus memeriksa semua batasan karena checkBounds baru Anda () sepenuhnya akan menimpa yang dibangun menjadi simpleGame.