Isi kandungan:
- Langkah 1: Buat Pemain Anda
- Langkah 2: Kod Bilik Baru
- Langkah 3: Membuat Pautan Dari Pemboleh Ubah
- Langkah 4: Uji
- Langkah 5: Tambahkan Senarai Bilik
- Langkah 6: Menghilangkan Bilik
- Langkah 7: Menguji
- Langkah 8: Keanehan Dengan Sugarcube dan Objek
- Langkah 9: Fungsi Klon ()
- Langkah 10: Itu sahaja buat masa ini
Video: Pautan Dari Pemboleh ubah dalam Twine Dengan Sugarcube: 10 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Saya sangat gembira kerana anda telah menyertai saya lagi! Ini bermakna Wumpus belum memakan anda. Baik!
Bagi anda yang tidak biasa, ini adalah satu set tutorial yang saya buat untuk membantu sepupu wol saya yang suka bermain dengan projek seniornya. Tutorial ini dimaksudkan untuk menjadi rujukan untuk apa yang dapat anda lakukan dengan beberapa ciri pengaturcaraan Twine dan Sugarcube. Sekiranya anda ingin mengikuti, anda boleh mendapatkan tutorial pertama di sini.
Dalam tutorial terakhir, saya membina sekumpulan kecil bilik yang dapat diterokai oleh pemain. Saya menambahkan objek Wumpus, dan membuat beberapa kod bilik generik untuk mengubah apa yang dipaparkan di setiap bilik bergantung pada lokasi Wumpus.
Langkah 1: Buat Pemain Anda
Langkah ini sangat mudah. Pada dasarnya saya hanya menggunakan kod yang sama dengan $ wumpus saya, tetapi dengan pemboleh ubah $ pemain.
Langkah 2: Kod Bilik Baru
Tukar kod bilik generik anda sehingga nilai $ player adalah ruangan semasa. Kemudian bandingkan $ wumpus dengan $ pemain dan bukannya bilik semasa.
Ini adalah perubahan kecil, dan tidak sepenuhnya diperlukan, tetapi saya ingin memastikan kod saya tetap tersusun.
Langkah 3: Membuat Pautan Dari Pemboleh Ubah
Akhirnya, ingin mengganti pautan di ruang permulaan saya ke pautan yang berubah berdasarkan nilai $ pemain. Ini dapat dilakukan dengan fungsi "" di Sugarcube. Anda boleh membaca lebih lanjut mengenai perkara itu di halaman dokumentasi Sugarcube.
Rentetan pertama selepas perintah kami adalah frasa yang akan muncul dalam petikan kami. Yang kedua adalah nama petikan yang ingin kita pautkan. Saya menggunakan "Hunt the Wumpus!" seperti ungkapan saya, tetapi kita boleh menggunakan pemboleh ubah kita di sana sebaliknya jika kita mahu pemain tahu di mana mereka pergi sebelumnya, seperti ini:
Langkah 4: Uji
Semasa anda menguji kod anda, anda harus mengetahui bahawa pautan anda telah diganti dengan frasa apa pun yang anda tulis sebelumnya. Mengklik ia membawa anda ke ruangan rawak dalam permainan anda.
Malangnya, ini juga boleh membawa anda terus ke bilik Wumpus! Itu tidak banyak masalah sekarang, tetapi dalam permainan sebenar yang akan menjadi permainan segera berakhir. Kita perlu memperbaikinya.
Langkah 5: Tambahkan Senarai Bilik
Pertama, kita akan membuat senarai bilik, untuk memudahkan menguruskan bilik. Dengan menyatakan array ini, kita dapat menggunakannya untuk menetapkan nilai $ player dan $ wumpus kita tanpa mengulangi kod. Ia juga mempunyai kelebihan lain yang akan kita kaji seterusnya.
Menguji dengan kod ini harus berkelakuan seperti sebelumnya.
Langkah 6: Menghilangkan Bilik
Saya telah menambahkan satu baris kod ke kod dari sebelumnya (disorot).
Susunan di Sugarcube mempunyai fungsi terbina dalam yang membolehkan anda memadamkan unsur daripadanya berdasarkan nama. Dalam kes ini, setelah kami memberikan $ wumpus sebuah ruangan, kami dapat memadamkan ruangan itu dari senarai $ room kami. Walau bagaimanapun, fungsi ini tidak betul. Ia tidak akan berfungsi melainkan output fungsi ditetapkan atau digunakan dalam beberapa cara. Untuk mengatasinya, saya telah membuat pemboleh ubah sementara _temp.
Di Sugarcube, pemboleh ubah sementara bermula dengan garis bawah (_) dan bukannya dolar ($). Mereka berguna kerana dihapus setelah petikan dijalankan, jadi anda tidak perlu risau tentang nama pemboleh ubah yang bertindih.
Saya juga akan menghapus ruangan pemain $ dari senarai bilik $ juga, semestinya.
Langkah 7: Menguji
Walaupun kita dapat menjalankan kod seperti sekarang, itu bukan ujian yang sangat teliti. Sekiranya kita menjalankan kod dan mendapati bahawa $ player dan $ wumpus ditugaskan ke ruangan yang berbeza, kita tidak tahu apakah itu kerana kod itu berfungsi, atau jika itu hanya kebetulan. Sudah tentu, kita dapat menjalankan kodnya berkali-kali, dan menganggap bahawa jika tidak pernah memberi mereka ruang yang sama yang tidak akan pernah berlaku, tetapi itu akan berlangsung selama-lamanya dan masih belum ada jaminan 100% bahawa ia tidak akan pernah berlaku.
Sebaliknya, kita memerlukan kaedah untuk diperiksa.
Saya telah menambah tiga baris ke bahagian atas petikan intro kami yang akan membolehkan kami melihat nilai pemboleh ubah $ wumpus, $ player, dan $ roomlist kami. Oleh kerana cara kami menetapkan kod kami, kami tahu bahawa ruangan $ wumpus dan $ player room harus dihapuskan dari $ roomlist.
Apabila kita menjalankan kod ini, kita dapat memeriksa untuk memastikan perkara itu berlaku.
Langkah 8: Keanehan Dengan Sugarcube dan Objek
Objek tebu sedikit ganjil. Izinkan saya menunjukkan ini.
Semasa saya membina projek ini pada asalnya, saya ingin menyimpan senarai bilik $ saya ke pemboleh ubah $ saveroom sebelum saya mula memadam bilik daripadanya. Saya fikir ia akan berguna kemudian.
Apabila saya mendapat tingkah laku pelik dari kod ini, saya menambah baris lain ke halaman intro saya untuk membolehkan saya melihat pemboleh ubah $ saveroom saya (gambar kedua).
Saya terkejut apabila mengetahui bahawa unsur-unsur yang telah saya hapus dari $ roomlist juga telah dihapuskan dari senarai yang saya simpan! Anda dapat melihatnya dalam aksi pada gambar ketiga.
Ini kerana apabila anda menyalin array seperti ini, anda sebenarnya tidak menyuruh Twine menyalin array, anda memberitahu Twine bahawa kedua pemboleh ubah ini adalah susunan yang sama. Apabila anda melakukan sesuatu pada array menggunakan satu pemboleh ubah, ia mengubah susunan yang sama dengan pemboleh ubah lain yang dilihat!
Kita boleh memperbaikinya dengan fungsi klon ().
Langkah 9: Fungsi Klon ()
Anda boleh membaca mengenai fungsi klon () di halaman dokumentasi Sugarcube.
Salinan "cetek" adalah apa yang kita lakukan sebelum ini. Daripada membuat salinan lengkap dari keseluruhan array, ia hanya menganggap pemboleh ubah anda berfungsi dengan susunan yang sama. Daripada salinan cetek, klon () melakukan salinan "dalam", yang berkelakuan seperti yang anda harapkan. Setiap elemen array disalin ke dalam array baru, dan sama sekali terpisah dari yang asal.
Sekiranya kita menguji kod baru ini, kita dapati ia berfungsi seperti yang diharapkan.
Sudah tentu, tidak kira sama ada anda menyimpan $ roomlist atau tidak. Untuk tujuan projek saya, saya tidak akan melakukannya. Ini semua hanya untuk menunjukkan salinan mendalam berbanding cetek.
Langkah 10: Itu sahaja buat masa ini
Kami telah menambah kod yang membolehkan pemain kami bermula di ruangan rawak. Selain itu, kami telah menghilangkan bug di mana pemain akan bermula di ruangan yang sama dengan Wumpus.
Kami belajar bagaimana membuat pautan dari pemboleh ubah, dan bagaimana penyalinan array diperlakukan oleh Sugarcube.
Segala-galanya semakin meningkat, tetapi kami baru memulakan!
Selamat memburu!
Disyorkan:
AC hingga + 15V, -15V 1A Pemboleh ubah dan 5V 1A Bangku Tetap Bekalan Kuasa DC: 8 Langkah
AC hingga + 15V, -15V 1A Pemboleh Ubah dan 5V 1A Benang Tetap Bekalan Kuasa DC: Bekalan kuasa adalah peranti elektrik yang membekalkan tenaga elektrik ke beban elektrik. Bekalan Kuasa Model ini mempunyai tiga bekalan kuasa DC keadaan pepejal. Bekalan pertama memberikan output berubah positif 1,5 hingga 15 volt pada 1 ampere
Rider Speed Knight Pemboleh ubah: 3 Langkah
Variabel Speed Knight Rider: Ini adalah Instructable pertama saya, jadi tolong suka! Ia diilhamkan oleh rancangan TV 1980-an yang disebut Knight Rider, yang mempunyai sebuah kereta bernama KITT dengan pengimbas LED yang berulang-ulang seperti ini. Oleh itu, mari mulakan
Motor Kelajuan Pemboleh ubah Terkawal Bersiri: 6 Langkah
Serial Controlled Variable Speed Motor: Kawal kelajuan motor DC kecil dengan hanya port bersiri pada komputer anda, satu MOSFET, dan beberapa perisian sepele. (MOSFET dan port bersiri membentuk "kawalan kelajuan"; anda masih memerlukan motor dan sup
Membaiki Kapasitor - Kapasitor Pemboleh ubah Udara Kecil dalam Pemancar: 11 Langkah
Membaiki Kapasitor - Kapasitor Pemboleh ubah Udara Kecil di Pemancar: Cara membaiki kapasitor pemboleh ubah udara seramik dan logam kecil seperti yang terdapat di peralatan radio lama. Ini berlaku apabila poros terlepas dari kacang heksagon atau "kenop" yang ditekan. Dalam kes ini, kacang yang merupakan penyesuaian pemutar skru
Kapasitor Pemboleh Ubah Udara Dari Lembaran Aluminium Scrap: 18 Langkah (dengan Gambar)
Kapasitor Pemboleh Ubah Udara Dari Lembaran Aluminium Scrap: Saya membina set kristal untuk anak saya, tetapi terhenti. Apabila saya mendapat tahu bahawa saya tidak mempunyai kapasitor berubah dalam timbunan sampah saya. Menghilangkan satu dari radio lama bukanlah pilihan. Oleh kerana kebanyakan radio baru menggunakan penalaan analog. Dan yang mempunyai