Daftar Isi:
- Langkah 1: Buat Pemain Anda
- Langkah 2: Kode Kamar Baru
- Langkah 3: Membuat Tautan Dari Variabel
- Langkah 4: Uji
- Langkah 5: Tambahkan Daftar Kamar
- Langkah 6: Menghilangkan Kamar
- Langkah 7: Pengujian
- Langkah 8: Keanehan Dengan Sugarcube dan Objek
- Langkah 9: Fungsi Klon()
- Langkah 10: Itu Saja untuk Sekarang
Video: Tautan Dari Variabel dalam Benang Dengan Sugarcube: 10 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Saya sangat senang Anda bergabung dengan saya lagi! Ini berarti Wumpus belum memakanmu. Bagus!
Bagi Anda yang tidak terbiasa, ini adalah serangkaian tutorial yang saya buat untuk membantu sepupu widdle oochy-skootchy yang menggemaskan dengan proyek seniornya. Tutorial ini dimaksudkan sebagai referensi untuk apa yang dapat Anda lakukan dengan beberapa fitur pemrograman Twine dan Sugarcube. Jika Anda ingin mengikuti, Anda dapat menemukan tutorial pertama di sini.
Dalam tutorial terakhir, saya membuat satu set kecil ruangan yang dapat dijelajahi oleh pemain. Saya menambahkan objek Wumpus, dan membuat beberapa kode ruangan umum untuk mengubah apa yang ditampilkan di setiap ruangan tergantung di mana Wumpus berada.
Langkah 1: Buat Pemain Anda
Langkah ini sangat sederhana. Pada dasarnya saya hanya menggunakan kode yang sama dengan $wumpus saya, tetapi dengan variabel $player sebagai gantinya.
Langkah 2: Kode Kamar Baru
Mengubah kode kamar generik Anda sehingga nilai $player adalah kamar saat ini. Kemudian bandingkan $wumpus dengan $player alih-alih ruangan saat ini.
Ini adalah perubahan kecil, dan tidak sepenuhnya diperlukan, tetapi saya ingin menjaga kode saya tetap teratur.
Langkah 3: Membuat Tautan Dari Variabel
Terakhir, ingin mengganti tautan di ruang awal saya menjadi tautan yang berubah berdasarkan nilai $player. Ini dapat dilakukan dengan fungsi "" di Sugarcube. Anda dapat membaca lebih lanjut tentang itu di halaman dokumentasi Sugarcube.
String pertama setelah perintah kami adalah frasa yang akan muncul di bagian kami. Yang kedua adalah nama bagian yang ingin kita tautkan. Saya menggunakan "Berburu Wumpus!" sebagai ungkapan saya, tetapi kita bisa menggunakan variabel kita di sana sebagai gantinya jika kita ingin pemain tahu ke mana mereka pergi sebelumnya, seperti ini:
Langkah 4: Uji
Ketika Anda menguji kode Anda, Anda akan menemukan bahwa tautan Anda telah diganti dengan frasa apa pun yang Anda tulis sebelumnya. Mengkliknya akan membawa Anda ke ruang acak di gim Anda.
Sayangnya, ini juga bisa membawa Anda langsung ke ruang Wumpus! Itu tidak terlalu penting sekarang, tetapi dalam permainan nyata itu akan menjadi permainan instan. Kita perlu memperbaikinya.
Langkah 5: Tambahkan Daftar Kamar
Pertama, kita akan membuat daftar ruangan, untuk mempermudah pengelolaan ruangan. Dengan mendeklarasikan array ini, kita dapat menggunakannya untuk mengatur nilai $player dan $wumpus tanpa mengulang kode. Ini juga memiliki keuntungan lain yang akan kita jelajahi selanjutnya.
Pengujian dengan kode ini harus berperilaku seperti sebelumnya.
Langkah 6: Menghilangkan Kamar
Saya telah menambahkan satu baris kode ke kode dari sebelumnya (disorot).
Array di Sugarcube memiliki fungsi bawaan yang memungkinkan Anda menghapus elemen darinya berdasarkan nama. Dalam hal ini, setelah kita menetapkan $wumpus sebuah ruangan, kita dapat menghapus ruangan itu dari $roomlist kita. Namun, fungsi ini rewel. Ini tidak akan berfungsi kecuali jika output dari fungsi tersebut ditetapkan atau digunakan dalam beberapa cara. Untuk mengatasinya, saya telah membuat variabel sementara _temp.
Di Sugarcube, variabel sementara dimulai dengan garis bawah (_) alih-alih satu dolar ($). Mereka berguna karena mereka dihapus setelah bagian dijalankan, jadi Anda tidak perlu khawatir tentang nama variabel yang tumpang tindih.
Saya juga menghapus $player room dari $roomlist, sebagai hal yang biasa.
Langkah 7: Pengujian
Meskipun kami dapat menjalankan kode seperti sekarang, itu tidak akan menjadi tes yang sangat menyeluruh. Jika kami menjalankan kode dan menemukan bahwa $player dan $wumpus ditempatkan ke ruangan yang berbeda, kami tidak tahu apakah itu karena kode tersebut berfungsi, atau hanya kebetulan. Tentu, kita bisa menjalankan kode berkali-kali, dan berasumsi bahwa jika tidak pernah memberi mereka berdua ruangan yang sama, itu tidak akan pernah terjadi, tapi itu akan memakan waktu lama dan itu masih bukan jaminan 100% bahwa itu tidak akan pernah terjadi.
Sebaliknya, kita perlu cara untuk memeriksa.
Saya telah menambahkan tiga baris ke atas bagian intro kita yang akan membiarkan kita melihat nilai variabel $wumpus, $player, dan $roomlist kita. Karena cara kita mengatur kode kita, kita tahu bahwa $wumpus room dan $player room harus dihilangkan dari $roomlist.
Ketika kami menjalankan kode ini, kami dapat memeriksa untuk memastikan bahwa itu masalahnya.
Langkah 8: Keanehan Dengan Sugarcube dan Objek
Objek Sugarcube sedikit aneh. Biarkan saya menunjukkan ini.
Ketika saya membangun proyek ini pada awalnya, saya ingin menyimpan $roomlist saya ke variabel $saveroom sebelum saya mulai menghapus kamar darinya. Saya pikir itu akan berguna nanti.
Ketika saya mendapatkan beberapa perilaku aneh dari kode ini, saya menambahkan baris lain ke halaman intro saya untuk membiarkan saya melihat variabel $saveroom saya (gambar kedua).
Saya terkejut menemukan bahwa elemen yang telah saya hapus dari $roomlist juga telah dihapus dari daftar yang saya simpan! Anda dapat melihat ini beraksi di gambar ketiga.
Ini karena ketika Anda menyalin array seperti ini, Anda sebenarnya tidak menyuruh Twine untuk menyalin array, Anda memberi tahu Twine bahwa kedua variabel ini adalah array yang sama. Ketika Anda melakukan sesuatu pada array menggunakan satu variabel, itu mengubah array yang sama dengan yang dilihat oleh variabel lain!
Kita dapat memperbaikinya dengan fungsi clone().
Langkah 9: Fungsi Klon()
Anda dapat membaca tentang fungsi clone() di halaman dokumentasi Sugarcube.
Salinan "dangkal" adalah apa yang kami lakukan sebelumnya. Alih-alih membuat salinan lengkap dari seluruh array, itu hanya mengasumsikan bahwa variabel Anda bekerja dengan array yang sama. Alih-alih salinan dangkal, clone() melakukan salinan "dalam", yang berperilaku seperti yang Anda harapkan. Setiap elemen larik disalin ke larik baru, dan benar-benar terpisah dari aslinya.
Jika kami menguji kode baru ini, kami menemukan itu berfungsi seperti yang diharapkan.
Tentu saja, tidak masalah apakah Anda menyimpan $roomlist atau tidak. Untuk keperluan proyek saya, saya tidak akan melakukannya. Ini semua hanya untuk mendemonstrasikan salinan yang dalam vs. dangkal.
Langkah 10: Itu Saja untuk Sekarang
Kami telah menambahkan kode yang memungkinkan pemain kami memulai di ruang acak. Selain itu, kami telah menghilangkan bug di mana pemain akan memulai di ruangan yang sama dengan Wumpus.
Kami belajar tentang cara membuat tautan dari variabel, dan bagaimana penyalinan array diperlakukan oleh Sugarcube.
Hal-hal meningkat, tetapi kami baru saja memulai!
Selamat berburu!
Direkomendasikan:
Sensor Cuaca Ringkas Dengan Tautan Data GPRS (Kartu SIM): 4 Langkah
Compact Weather Sensor With GPRS (SIM Card) Data Link: Ringkasan proyekIni adalah sensor cuaca bertenaga baterai yang didasarkan pada sensor suhu/tekanan/kelembaban BME280 dan MCU ATMega328P. Ini berjalan pada dua baterai lithium thionyl AA 3,6 V. Ini memiliki konsumsi tidur yang sangat rendah sebesar 6 A. Ini mengirimkan data
Hasilkan Tautan Afiliasi (Referral) Banggood Lebih Mudah Dari Sebelumnya: 4 Langkah
Hasilkan Tautan Afiliasi (Referensi) Banggood Lebih Mudah Dari Sebelumnya: Versi ringkas dari instruksi ini dapat ditemukan di blog pribadi sayaPenjualan afiliasi adalah sumber penghasilan tambahan yang bagus untuk pembuat konten, dan banyak orang yang menggunakan instruksi menggunakannya. program afiliasi adalah Larangan
Bangun Tautan Data Radio 500 Meter dengan Harga Di Bawah $40.: 7 Langkah
Bangun Tautan Data Radio 500 Meter dengan Harga Di Bawah $40.: Punya tangki air yang ingin Anda ukur atau bendungan atau gerbang? Ingin mendeteksi mobil turun dari jalan tetapi tidak ingin memasang kabel di taman? Instruksi ini menunjukkan cara mengirim data 500 meter dengan keandalan 100% menggunakan mikrokontr
Benang Konduktif Di Dalam Tabung Bias Kain alias Tabung Konduktivitas: 10 Langkah
Benang Konduktif Di Dalam Kain Tabung Bias alias Tabung Konduktif: Metode menempelkan benang konduktif ke kain. Aplikasi yang bagus ketika Anda tidak bisa, atau tidak, ingin menjahit benang konduktif ke dalam pakaian Anda. Ingin lebih banyak video, tutorial, dan proyek eTextile How-To DIY eTextile? Kemudian kunjungi The eTextile Loun
Cara Menjahit Dengan Benang Konduktif Dengan Diana Eng: 10 Langkah (Dengan Gambar)
Cara Menjahit Dengan Benang Konduktif Dengan Diana Eng: Menggabungkan Listrik dan Fashion! Tingkat Kesulitan: Masih belajar Lama waktu: 45 menitBahan: pakaian untuk menjahit, benang konduktif, gunting, dua LED, baterai jam CR2032, dudukan baterai BS7, pena tinta menghilang , tang jarum-hidung, r