Hasil (
Bahasa Indonesia) 1:
[Salinan]Disalin!
PengenalanDeteksi tabrakan adalah fitur yang umum dari banyak alat-alat animasi, sehingga pertanyaan yang kadang-kadang diminta ketika siswa pertama kali mulai menggunakan Alice "mana adalah built-in mendukung untuk deteksi tabrakan?". Jawaban singkatnya adalah bahwa tidak ada apapun. Ingat bahwa Alice Lingkungan pemrograman di mana siswa dapat mengembangkan animasi, bukan tujuan dibangun animasi alat. Namun, karena lingkungan pemrograman, Alice memberikan programmer kemampuan untuk mudah mengembangkan dukungan mereka sendiri untuk deteksi tabrakan. Tutorial ini memberikan gambaran bagaimana dukungan deteksi tabrakan tersebut dapat dilaksanakan.Dunia AliceDunia untuk tutorial ini terdiri dari sebuah van Humvee dan sejumlah rintangan. Penanganan metode dan event handler event telah dilaksanakan yang memungkinkan pengguna untuk memindahkan mobil di seluruh dunia. Sebagai contoh kode untuk supir Humvee maju adalah sebagai berikut. Blok "Lakukan bersama-sama" digunakan untuk menggerakkan bergerak mobil maju dan pada saat yang bersamaan memutar roda.Kode untuk mengendalikan HumveeMenyiapkan deteksi tumbukanUntuk mengatur deteksi tabrakan dan penghindaran tabrakan kita mulai dengan menambahkan metode, disebut tabrakan, ke objek dunia yang mendeteksi dan bereaksi terhadap tabrakan. Kami mulai dengan pengaturan ini untuk satu hambatan, dalam hal ini sebuah bangunan dan kemudian memperpanjang kode sehingga kami dapat menangani beberapa rintangan. Untuk mendeteksi tabrakan kita menggunakan fungsi "adalah dalam ambang" dari humvee objek. Hal ini digunakan sebagai bersyarat pernyataan jika-itu-lain. Jika kondisi benar, kemudian humvee bereaksi terhadap tabrakan dengan bergerak mundur jauh.Ketika menggunakan fungsi "adalah dalam ambang", kita perlu diingat bahwa fungsi mengukur jarak antara pusat Humvee dan pusat hambatan. Tabrakan dengan sisi dari hambatan karena itu akan terjadi ketika jarak antara pusat separuh dari lebar hambatan + setengah dari kedalaman Humvee. Jarak ini akan ketika Humvee mendekat dari arah yang berbeda, misalnya dari bagian depan bangunan (dalam hal ini kita mungkin menggunakan setengah dari kedalaman hambatan). Untuk tutorial ini, kita hanya menggunakan perhitungan di atas, tapi kami bisa mencakup pemeriksaan lebih canggih dengan menentukan arah mana Humvee mendekati hambatan dari menggunakan "depan" dan fungsi-fungsi yang serupa.Setelah mengembangkan metode tabrakan, kami membuat "ketika dunia sedang berjalan" event handler. Handler event ini akan memanggil metode tabrakan, sehingga setiap kali tabrakan terdeteksi Humvee akan bereaksi dan bergerak mundur.Berurusan dengan beberapa rintanganSejauh ini kami hanya dapat menangani satu kendala. Kita tentu saja dapat mengembangkan metode yang serupa untuk menangani hambatan lain, tapi KERING (jangan ulangi dirimu sendiri) prinsip menyarankan kita harus menemukan cara yang lebih baik untuk melakukan hal ini. Daripada mengulangi kode untuk hambatan lain, apa yang akan kita lakukan adalah generalisasi kode yang ada untuk menangani berbagai kendala. Untuk melakukan ini, kami menggunakan sebuah variabel daftar untuk mewakili koleksi semua rintangan dan kemudian menggunakan membangun "untuk semua melakukan bersama-sama" melakukan deteksi tabrakan dan penghindaran dalam metode tunggal.
Sedang diterjemahkan, harap tunggu..
