Apa jenis parameter yang diharapkan oleh metode Greenfoot playSound

Tutorial 1: Berinteraksi dengan Greenfoot
Tutorial ini akan menjelaskan dasar-dasar antarmuka Greenfoot, dan berinteraksi dengan Greenfoot.

Antarmuka Greenfoot
Tutorial ini menggunakan skenario yang disebut ‘wombat’ yang dapat Anda download di sini (juga disertakan dalam contoh skenario dengan versi Greenfoot sebelum 2.4.0). Buka skenario wombat di Greenfoot; Anda kemudian harus melihat ini:

Jika Anda tidak melihat dunia, dan kelas di sebelah kanan memiliki garis miring diagonal di atas mereka, ini karena kodenya tidak dikompilasi. Klik pada tombol “Kompilasi” di kanan bawah.

Area grid besar yang menutupi sebagian besar jendela disebut “dunia”. Karena kita memiliki skenario di sini yang berhubungan dengan wombat, kita melihat dunia wombat. Menuju sisi kanan jendela adalah tampilan kelas. Di sini Anda bisa melihat semua kelas Java yang terlibat dalam proyek ini. Kelas “Dunia” dan “Aktor” akan selalu ada – mereka datang dengan sistem Greenfoot. Kelas lainnya termasuk dalam skenario wombat, dan akan berbeda jika Anda menggunakan skenario yang berbeda.

Di bawah ini adalah Kontrol Eksekusi (area dengan tombol ‘Act’ dan ‘Run’ dan slider). Mari label semua hal ini di antarmuka kita:

Tempatkan objek ke dunia
Kita sekarang akan menempatkan beberapa benda ke dalam dunia. Klik kanan (di Mac, Control-klik setiap kali tutorial ini mengatakan klik kanan) kelas Wombat di layar kelas. Anda akan melihat menu pop-up seperti ini:

Pilih ‘Wombat baru ()’ dari menu. Lalu klik di manapun di dunia ini. Anda baru saja membuat sebuah wombat (dalam istilah Jawa: sebuah benda) dan meletakkannya ke dalam dunia.

Wombat makan daun, jadi mari kita menaruh beberapa daun ke dunia juga. Klik kanan kelas Leaf, pilih ‘new Leaf ()’ dan letakkan daunnya ke dalam dunia.

Ada jalan pintas untuk menempatkan beberapa objek sedikit lebih cepat: menggeser-klik ke dunia. Pastikan kelas Leaf dipilih (klik kiri di panel kelas, dan akan mendapatkan batas hitam yang lebih tebal), lalu tahan tombol Shift dan klik kiri di dunia beberapa kali. Anda akan menempatkan satu objek dari kelas yang dipilih di setiap klik. Lebih cepat!

Buat benda bertindak
Klik tombol ‘Undang-Undang’ di kontrol eksekusi. Setiap objek sekarang bertindak – yaitu: setiap objek melakukan apa pun yang diprogram untuk dilakukan. Dalam contoh kita, daun diprogram untuk tidak melakukan apa-apa, sementara wombat diprogram untuk bergerak maju. Cobalah menempatkan dua wombat ke dunia dan tekan Bertindak lagi. Keduanya akan bergerak.

Wombat juga suka makan daun. Jika mereka menemukan selir di jalan mereka, mereka akan memakannya. Cobalah menempatkan beberapa daun di depan wombat, lalu klik Act – wombat akan bergerak maju dan makan daunnya.

Jalankan skenario
Klik tombol ‘Run’. Ini setara dengan mengklik tombol ‘UU’ berulang-ulang, sangat cepat. Anda akan melihat bahwa tombol Run berubah menjadi tombol ‘Jeda’; Mengklik Jeda menghentikan segala sesuatunya.

Slider di samping tombol Act and Run mengatur kecepatan. Klik Run dan kemudian ubah slider, dan Anda akan melihat perbedaannya.

Ajukan metode secara langsung
Alih-alih menjalankan keseluruhan skenario, Anda juga bisa memanggil satu metode. Metode adalah tindakan tunggal yang dapat dilakukan objek.

Pastikan Anda memiliki wombat di dunia, dan skenario tidak berjalan. Kemudian klik kanan pada wombat (yang ada di dunia, bukan kelas Wombat), dan Anda akan melihat bahwa objek di dunia juga memiliki menu pop-up:

Anda dapat memilih salah satu metode yang ditunjukkan di sini untuk meminta wombat melakukan sesuatu. Coba, misalnya, turnLeft (). Memilih ini dari menu memberitahu wombat untuk berbelok ke kiri. Coba pindahkan () juga.

Beberapa metode memberi Anda jawaban. getLeavesEaten (), misalnya, akan memberitahu Anda berapa banyak daun wombat ini yang telah dimakan sejauh ini. Cobalah. Kemudian dapatkan wombat untuk makan daun lain, dan coba panggil metode itu lagi.

Anda juga akan melihat sebuah metode yang disebut ‘act ()’. Metode ini disebut setiap kali Anda mengklik tombol Act. Jika Anda ingin hanya satu objek untuk bertindak alih-alih semua objek di dunia, Anda dapat melakukannya dengan menerapkan metode tindakan () objek secara langsung.

Ciptakan dunia baru
Jika Anda memiliki banyak benda di dunia yang tidak Anda inginkan lagi, dan Anda ingin memulai dari awal, ada satu pilihan mudah: buanglah dunia dan ciptakan yang baru. Hal ini biasanya dilakukan dengan mengklik tombol ‘Reset’ pada kontrol eksekusi. Anda akan mendapatkan dunia baru yang kosong. Dunia lama dibuang (dan dengan semua benda yang ada di dalamnya) – Anda hanya bisa memiliki satu dunia yang aktif sekaligus.

Ajukan metode dunia
Kita telah melihat bahwa benda-benda di dunia memiliki metode yang dapat Anda gunakan melalui menu pop-up. Dunia itu sendiri juga merupakan objek dengan metode yang bisa Anda panggil. Klik kanan pada setiap ruang kosong di dunia, atau di area abu-abu segera di samping dunia, dan Anda akan melihat menu dunia:

Salah satu metode dalam menu ini adalah ‘populate ()’. Cobalah. Ini adalah metode yang menciptakan beberapa daun dan wombat dan menempatkannya ke dalam dunia. Anda kemudian bisa menjalankan skenario.

Metode dunia lain adalah ‘randomLeaves (int howMany)’. Metode ini menempatkan beberapa daun di dunia pada lokasi acak. Perhatikan bahwa metode ini memiliki beberapa kata antara tanda kurung setelah namanya: ‘int howMany’. Ini disebut ‘parameter’. Ini berarti bahwa Anda harus menentukan sedikit informasi tambahan saat Anda memanggil metode ini. Istilah ‘int’ memberitahu Anda bahwa keseluruhan bilangan diharapkan, dan nama ‘howMany’ menunjukkan bahwa Anda harus menentukan berapa daun yang Anda inginkan. Ajukan metode ini Dialog akan muncul yang memungkinkan Anda memasukkan nilai parameter ini. Masukkan nomor (katakanlah: 12) dan klik Ok.

(Anda mungkin memperhatikan, jika Anda menghitung, bahwa kadang-kadang tampak seolah-olah lebih sedikit dari jumlah daun yang ditentukan. Hal ini karena beberapa daun mungkin berada pada lokasi yang sama, dan terbaring di atas satu sama lain.)

Oke, itu cukup wombat berputar berputar-putar tanpa henti – mari beralih ke hal yang benar-benar menarik: pemrograman!

Tutorial 2: Gerakan dan Kontrol Tombol
Tutorial ini akan menjelaskan bagaimana melakukan gerakan di Greenfoot, dan bagaimana cara mengendalikan aktor dengan keyboard.

Skenario Kepiting
Download file zip kepiting skenario kepiting awal dan unzip isinya ke suatu tempat di hard disk Anda. Lalu buka skenario di lokasi itu di Greenfoot; Anda harus melihat antarmuka Greenfoot standar, dengan dunia berpasir yang kosong:

Klik kanan (di Mac, Control-klik setiap kali tutorial ini mengatakan klik kanan) di kelas kepiting dan pilih New Crab (), lalu klik kiri pada dunia untuk menempatkan kepiting:

Setelah itu, klik Run. Anda mungkin berharap Anda bisa melihat Kepiting melakukan tarian yang menakjubkan di sekitar layar. Sayangnya, sepertinya kita sudah malas kepiting! Mari kita buka kode dan lihatlah; Anda dapat mengklik dua kali kelas Kepiting di browser kelas, atau Anda bisa klik kanan dan pilih ‘Open Editor’:

Apa yang akan Anda lihat adalah kode Java untuk Kepiting. Anda tidak perlu memahami semua itu dulu, tapi yang penting adalah kode di antara tanda kurung keriting di bawah garis void publik () – tidak ada apa-apa di sana:

Sebuah catatan singkat tentang bracket spotting (seperti biasa, wikipedia memiliki artikel yang sangat komprehensif). Ada tiga jenis braket utama yang digunakan di Jawa; mari kita lihat beberapa gambar blown-up dari mereka: Bracket bulat Ini adalah kurung bulat, dikenal di Amerika Serikat sebagai tanda kurung, tapi di Inggris sama seperti tanda kurung. Di Jawa, mereka digunakan dalam ekspresi matematis, dan untuk mengelilingi daftar parameter untuk pemanggilan metode (kami akan menghubungi mereka segera). Bracket sq Ini adalah tanda kurung siku, yang dikenal di Amerika Serikat hanya sebagai tanda kurung (lihat di mana kebingungan bisa muncul?). Di Jawa, mereka digunakan untuk array. Bracket keriting

Ini adalah kurung keriting, juga dikenal sebagai kurung kurawal kurawal atau kurawal. Di Jawa, ini digunakan untuk mengelilingi blok kode, seperti metode atau isi kelas.

Bagaimanapun, kembali ke kodenya, Anda bisa melihat bahwa tidak ada apa-apa di antara kurung kurawal. Jika kita ingin kepiting kita melakukan apapun, kita harus mengisinya. Mari kita mulai bergerak, dengan menambahkan instruksi bergerak ke kode:

Anda perlu mencocokkan dengan tepat apa yang tertulis di sana. Ini adalah kata bergerak, diikuti oleh kurung bulat yang berisi angka 4, diikuti oleh titik dua titik. Kesalahan umum meliputi pemalsuan m (kapitalisasi di Jawa!), Kehilangan titik dua titik dua, menggunakan tanda kurung yang salah (atau berpikir bahwa kurung bulat kosong adalah nol), atau secara tidak sengaja menghapus kurung kurawal. Jika Anda mengalami error selama tutorial ini, cari salah satu kesalahan yang mungkin Anda buat saat menyalin kode.

Setelah Anda menulis ini, tekan tombol Kompilasi di antarmuka Greenfoot utama (atau di bagian atas jendela editor) lalu tempatkan kepiting di dunia lagi dan klik Run. Sekarang kepiting itu harus meluncur ke samping di atas layar. Maka itu harus sampai di ujung dunia dan tiba-tiba berhenti. Jika Anda suka, Anda bisa menghentikan sementara skenario, seret kepiting ke kiri, tekan Run dan tonton lagi. Mengapa tidak menempatkan beberapa kepiting lagi di dunia dan melihat mereka semua melakukan itu? Kepiting tidak benar-benar berhenti seperti itu; mereka masih mencoba untuk bergerak, tapi Greenfoot tidak membiarkan mereka keluar dari dunia (jika mereka melakukannya, bagaimana Anda menarik mereka masuk lagi?). Anda bisa memvariasikan kecepatan kepiting dengan mengubah nomor 4 di kode ke nomor yang berbeda. Lebih tinggi akan lebih cepat, lebih rendah akan lebih lambat – lihat apakah Anda bisa menebak apa yang terjadi dengan angka negatif.

Mari kita membuat kepiting melakukan sedikit lebih dari bergerak dalam garis lurus. Kembali ke kode, dan setelah garis bergerak, tambahkan baris lain (tapi masih di dalam tanda kurung kurawal untuk metode tindakan) yang mengatakannya (3), seperti ini:

Anda akan melihat bahwa kepiting itu berjalan dalam lingkaran. Bereksperimenlah dengan jumlah yang berubah untuk membuat lingkaran lebih ketat atau lebih besar – kami akan menyerahkannya kepada Anda untuk mengetahui ke arah mana yang Anda butuhkan, dan mengapa hal itu terjadi.

Hal yang baik tentang kepiting yang berputar sepanjang waktu adalah bahwa bahkan jika memang menyentuh tepi dunia, pada akhirnya akan cukup berubah sehingga bergerak mundur dari ujung dunia dan masuk ke tengah lagi. Apa yang akan lebih baik lagi adalah jika kita bisa mengendalikan kepitingnya – mari kita berinteraksi dalam skenario kita! Kita bisa membuat kepiting berbelok saat kita menekan tombol kursor kiri atau kanan (panah). Inilah kodenya:

Kami menggunakan metode built-in Greenfoot untuk memeriksa apakah ada kunci yang turun. Antara tanda petik adalah nama kuncinya, “kiri” adalah tombol kursor kiri, “kanan” benar. Jika Anda menginginkan sesuatu seperti “a” dan “d”, cukup gunakan mereka saja! Kode kami mengatakan: jika kunci itu turun, putar sejumlah derajat tertentu. Masukkan kode itu, kompilasi, dan cobalah sendiri. Anda bisa mengubah seberapa cepat kepiting berubah dengan meningkatkan angka tersebut.

Jika Anda memasukkan beberapa kepiting di dunia, Anda akan mendapati bahwa menekan tombol mengendalikan semuanya sekaligus dalam sinkronisasi yang bagus, membuat Anda menjadi semacam kepiting: semua kepiting mengeksekusi kode yang sama, jadi jika Anda menekan tombol kiri, semua dari mereka akan melihat bahwa tombol kiri bawah, dan mereka semua akan berubah sesuai dengan itu.

Apa yang terjadi jika Anda menekan kiri dan kanan pada saat bersamaan? Cobalah, dan cari tahu – lalu lihat kodenya dan lihat apakah Anda bisa menentukan penyebabnya. Kemudian lanjutkan

Tutorial 3: Mendeteksi dan Menghapus Aktor, dan Metode Pembuatannya
Tutorial ini akan menjelaskan bagaimana cara mengetahui apakah Anda menyentuh aktor lain, dan kemudian menyingkirkan aktor itu dari dunia. Ini juga akan menjelaskan bagaimana cara agar kode Anda dapat dibaca dengan menggunakan metode.

Makan cacing
Kita akan melanjutkan langsung dari bagian 2, di mana kita mendapatkan kepiting kita bergerak di sekitar layar, di bawah kendali kita. Pada bagian ini, kita akan mengenalkan beberapa cacing untuk kita makan.

Kita sudah memiliki kelas untuk kepiting – kita sekarang akan menambahkan yang lain untuk cacing. Worm juga akan menjadi aktor, jadi untuk membuat kelas worm, klik kanan (Mac: control-click) di kelas Aktor dan pilih “subclass baru …”:

Sebagai nama kelas baru, masukkan: Worm – perhatikan bahwa kita menggunakan modal W. Ini adalah konvensi di Jawa bahwa kita memulai nama kelas dengan huruf kapital. Jika Anda secara tidak sengaja menggunakan w kecil sekarang, Anda akan mendapatkan error di kemudian hari saat menyalin kode yang menggunakan huruf W. Dari daftar gambar di kiri, pilih “worm.png” sebagai gambar dan tekan oke:

Kelas Worm kami tidak memiliki kode asli untuk memulai – seperti kelas kepiting kami saat kami memulai. Kita akan meninggalkannya seperti itu; Cacing kita bisu dan hanya duduk di satu tempat siap untuk dimakan. Mangsa yang mudah Kita akan memodifikasi kelas kepiting kita sehingga ketika kepiting kita melewati cacing, mereka memakan cacing tersebut. Untuk melakukan ini, kita kembali ke kode sumber kepiting kita, yang saat ini terlihat seperti ini:

Pada akhir act() metode, kami akan memasukkan beberapa kode untuk memeriksa apakah kepiting saat ini menyentuh cacing. Kita akan menggunakan metode getOneObjectAtOffset. Metode ini memakan waktu tiga parameter. Dua yang pertama adalah offset X dan Y (perbedaan) dari posisi kami saat ini. Kami ingin tahu tentang apa adalah tepat di bawah kami, jadi kita akan melewati nol untuk kedua. Parameter ketiga memungkinkan kita untuk menunjukkan yang kelas kami tertarik; Itulah cacing kelas:

Perhatikan bahwa kita tidak hanya menyebut metode, kita melakukan sesuatu di sebelah kiri, terlalu. Metode ini mengembalikan sesuatu (objek di bawah kami, jika ada satu), jadi kita perlu menyimpan nilai ini kembali siap untuk menggunakannya lagi. Untuk melakukan hal ini kita mendeklarasikan variabel (sesuatu untuk memegang nilai) yang kita telah dipanggil cacing, di baris sebelumnya. Kemudian kami menggunakan operator tugas (tanda sama dengan) untuk menunjukkan bahwa nilai cacing harus ditetapkan setara dengan nilai kembali metode. Sekarang kita memiliki nilai kembali metode di cacing variabel. Jika ada cacing tidak menyentuh kita, variabel ini akan berisi khusus nilai null. Kita hanya dapat menghapus cacing ketika ada cacing, jadi kita perlu memeriksa cacing yang tidak nilai null khusus sebelum menghapus:

! = Adalah “tidak sama” operator di Jawa. Ini berarti kita hanya akan menjalankan kode ketika cacing tidak null. Kode pertanyaan adalah untuk mendapatkan referensi ke dunia dalam variabel secara imajinatif bernama dunia dan mengatakan itu untuk menghilangkan cacing menggunakan metode removeObject. Jadi, mari kita memberikan uji. Kompilasi, membuat beberapa cacing dan menempatkan mereka di dunia Anda, kemudian tambahkan kepiting, memukul dijalankan dan gunakan tombol kiri dan kanan untuk memandu kepiting cacing, yang kemudian bisa dimakan. Lezat! Refactoring sebelum kita melanjutkan, kita akan membuat perubahan ke kode. Ini adalah sesuatu yang dikenal sebagai refactoring: mengubah kode tanpa mengubah perilaku. Saat ini metode run() untuk kepiting memiliki dua perilaku yang berbeda di dalamnya: atas setengah berkaitan dengan bergerak di sekitar, dan transaksi setengah bawah dengan makan cacing. Itu akan lebih jelas nama ini dan membaginya, untuk menghindari membingungkan diri kita nanti. Kita dapat melakukan ini dengan menciptakan metode untuk perilaku masing-masing. Kami telah benar-benar melihat bagaimana metode ditulis: act() adalah metode yang, setelah semua. Kedua metode baru kami memerlukan parameter tidak dan kembali tidak ada nilai, sehingga mereka dapat dinyatakan sama seperti act(); disesuaikan kode ini di bawah ini:

Jika Anda membandingkan kode ini ke versi sebelumnya, Anda akan melihat bahwa kita belum benar-benar berubah atau dihapus salah satu kode yang sudah ada. Kami pindah ke bagian atas ke metode baru yang disebut moveAndTurn, dan kami pindah bawah setengah ke metode baru yang disebut makan. Kami kemudian diganti isi metode act() dengan panggilan ke metode baru ini. Ini akan membuat kode kita harus fokus pada pendek di masa depan bagian tutorial Tutorial 4: Menyimpan dunia, membuat dan bermain suara

ini tutorial akan menjelaskan bagaimana untuk initialise dunia dengan aktor, serta cara bermain dan merekam suara. Menyelamatkan dunia sekarang kau mungkin bosan selalu harus menambah obyek baru ke dunia setiap kali kami menyusun kode. Hal ini dimungkinkan untuk menambahkan beberapa kode untuk secara otomatis membuat beberapa cacing dan kepiting kepadamu–apa lagi, itu mungkin untuk mendapatkan Greenfoot untuk menulis kode untuk Anda! Memukul Reset, dan kemudian tambahkan beberapa cacing dan kepiting ke dunia. Sebelum Anda tekan Run, klik kanan pada dunia dan pilih Simpan dunia pilihan:

Ini menambahkan beberapa kode kelas CrabWorld kami yang akan membuat cacing dan kepiting dan menambahkannya ke dunia pada posisi yang sama waktu berikutnya Anda reset atau mengkompilasi. Kita tidak akan mengeksplorasi kode secara rinci hanya sekarang, tetapi jika Anda ingin tahu kemudian melihat pada kode sumber untuk kelas CrabWorld yang muncul. Setelah Anda selesai, Anda dapat menutup jendela untuk kode sumber CrabWorld. Bermain dan merekam suara, kita dapat menambahkan beberapa suara untuk skenario kami. Skenario dilengkapi dengan suara yang siap untuk Anda untuk menggunakan, bernama “eating.wav”. Kita dapat membuat bahwa suara bermain setiap kali kepiting makan cacing dengan menambahkan satu baris ke kelas kepiting yang memanggil Greenfoot.playSound setelah kami menghapus cacing dari dunia:

Memberikan yang mencoba. Jangan lupa untuk menyalakan speaker Anda (atau pasang headphone Anda). Satu hal terakhir–jika Anda memiliki mikrofon untuk komputer Anda, Anda dapat merekam suara Anda sendiri. Dalam menu kontrol ada pilihan untuk menampilkan Perekam Suara:

Pilih itu, dan Anda akan mendapatkan Perekam Suara:

Tekan tombol dan berbicara (atau mengerut kosong makanan paket, atau apa pun!), kemudian tekan stop. Anda harus melihat gelombang hijau, dan ketika Anda menekan bermain, Anda harus mendengar suara Anda diputar kembali kepada Anda. Jika tidak, ada masalah dengan mikrofon Anda–mencoba googling untuk mendapatkan bantuan dengan itu. Dengan asumsi itu memang memiliki beberapa suara, Anda akan hampir selalu memiliki sedikit keheningan di awal dan akhir suara–Anda dapat melihat ini di layar hijau, karena akan ada garis datar horizontal di awal dan akhir sebelum bentuk

Keheningan di akhir tidak banyak masalah, tetapi diam pada awal menjengkelkan–itu berarti bahwa ketika Anda memberitahu suara untuk bermain ketika cacing dimakan, tidak akan muncul untuk menjadi penundaan singkat sebelum suara diputar, seolah-olah permainan Anda yang tertinggal. Anda dapat membersihkan senyap dengan memilih sedikit di tengah (bit yang Anda ingin menyimpan) dengan mengklik pada awal (setelah keheningan awal) dan menyeret ke ujung (sebelum akhir keheningan)–pemilihan harus ditampilkan dalam abu-abu. Kemudian tekan “Trim pilihan”. Keheningan harus dihapus. Menyimpan suara dengan memasukkan sesuatu dalam kotak nama file (misalnya “myeating”) kemudian menekan Simpan. Dekat perekam suara dan kembali kode. Cari baris dengan “eating.wav” dan mengubahnya ke “myeating.wav” (atau apapun nama Anda digunakan, ditambah ekstensi .wav). Kemudian ketika Anda bermain permainan Anda, Anda harus mendengar suara Anda sendiri bermain. Kita berada dekat dengan menyelesaikan permainan kami, tetapi kita perlu menambahkan musuh, yang kita akan lakukan di bagian 5 Tutorial 5: Menambahkan secara acak bergerak musuh setelah tutorial terakhir kami,

kami sekarang memiliki sebuah skenario dengan kepiting yang kita dapat mengontrol, yang berjalan di sekitar makan cacing. Permainan ini cukup mudah meskipun–meskipun kepiting (sengaja) sedikit rumit untuk mengontrol, ada tidak ada ketegangan. Apa yang kita butuhkan adalah musuh yang makan kepiting: lobster! Untuk mulai dengan, mari kita tambahkan lobster yang bergerak dalam garis lurus dan makan kepiting. Kita bisa melakukannya menggunakan kode yang kita sudah lihat bagaimana menulis. Pertama, kita tambahkan kelas Lobster–mengingat bahwa kita melakukan itu dengan mengklik kanan (Mac: kontrol-mengklik) pada aktor kelas dan memilih subclass baru. Anda akan menemukan gambar lobster dalam daftar gambar di sebelah kiri. Setelah Anda membuat kelas Lobster Anda, Anda dapat mengisi itu dengan membuat bergerak dalam garis lurus dan makan kepiting jika ia menemukan salah satu. Anda telah melihat bagaimana melakukan setiap hal-hal dalam tutorial sebelumnya, jadi aku tidak akan paste kode di sini secara langsung. Memiliki pergi sendiri, tapi jika Anda terjebak, Anda dapat melihat jawabannya di sini. Anda dapat menguji bahwa lobster bekerja dengan menempatkan satu di sebelah kiri kepiting, kemudian mengklik jalankan dan membiarkan mereka berdua lari ke sisi kanan dunia mana kepiting akan dimakan. (Jika Anda ingin, membuat suara Anda sendiri untuk Kapan lobster makan kepiting.) Itu bagus, tapi kami lobster sangat bodoh; sangat mudah untuk mendapatkan dari itu dengan bergerak ke samping, dan ketika ia mencapai tepi kanan dunia tetap di sana selamanya (sama seperti kepiting asli kami lakukan). Mari kita membuat lobster kami lebih sulit untuk menghindari dengan memperkenalkan beberapa keserampangan. Greenfoot menyediakan fungsi Greenfoot.getRandomNumber yang akan memberikan Anda nomor acak. Berikut adalah usaha pertama, yang mana kita berpaling dengan jumlah acak setiap bingkai

Kode itu berarti kita akan berubah dengan jumlah acak setiap frame, antara 0 derajat (inklusif) dan 90 derajat (eksklusif). Mencobanya, dan melihat cara kerjanya. Anda akan melihat bahwa itu tidak membuat musuh yang sangat mengancam: lobster tampaknya sebagian besar berputar di tempat (berpaling terlalu sering, berlaku), dan selalu ternyata ke kanan. Mari kita memperbaiki masalah tersebut satu per satu, dimulai dengan berputar di tempat. Saat ini, kami lobster berubah setiap bingkai, yang membuatnya spin daripada berkelana di sekitar. Ada beberapa cara yang berbeda yang kita bisa membuatnya berubah kurang sering. Salah satu akan memiliki sebuah variabel counter yang melacak berapa lama itu karena kita terakhir berubah, dan ternyata, mengatakan, setiap 10 frame. Cara lain adalah dengan menggunakan nomor acak generator untuk mengubah secara acak, dengan tertentu rata-rata (misalnya setiap frame yang 10). Kita akan pergi dengan penggunaan lain generator acak, seperti itu membuat untuk lobster kurang predicatable. Katakanlah bahwa lobster memiliki 10% kemungkinan mengubah setiap frame. Kita dapat kode ini dengan membandingkan Greenfoot.getRandomNumber(100) untuk persentase tertentu:

Jika Anda tertarik, berpikir dengan hati-hati tentang bagaimana ini bekerja–mengapa kita menggunakan < daripada < =. Bisa kita telah diberi kode ini berbeda, misalnya menggunakan Greenfoot.getRandomNumber(50) atau Greenfoot.getRandomNumber(10)? Bagaimana Greenfoot.getRandomNumber(5)? Itu akan membuat kami lobster yang mengubah setiap 10 frame (rata-rata). Kompilasi dan menjalankannya, dan melihat apa yang terjadi. Lobster harus sebagian besar berkelana bersama dalam garis lurus, kadang-kadang mengubah tepat dengan jumlah yang berbeda-beda. Yang besar, dan ini membawa kita kembali ke masalah kami yang lain: lobster selalu ternyata benar. Kita tahu dari kami kepiting yang menggunakan angka negatif untuk sudut jalan berbelok ke kiri. Jika kita bisa berubah dari berpaling lobster kami di kisaran 0 hingga 90 untuk berputar di kisaran-45 ke 45, yang akan memperbaiki masalah kita. Ada beberapa cara untuk mencapai hal ini, tapi di sini adalah sederhana: Perhatikan bahwa jika kita kurangi 45 dari nomor kami, kami berakhir dengan angka di kisaran yang tepat. Jadi mari kita menyesuaikan kode kami sesuai

Apakah kami berbagai berputar sempurna simetris pada saat? Jika tidak, bagaimana Anda bisa memperbaikinya? Kompilasi dan jalankan itu, dan kita harus memiliki predator agak efektif yang dapat mengubah ke arah Anda setiap saat. Menempatkan kepiting, beberapa lobster dan banyak cacing ke dalam dunia (kemudian simpan dunia!), dan mencoba untuk makan semua cacing sebelum lobster menangkap Anda. Anda mungkin melihat namun bahwa ada satu kekurangan sisa: lobster bisa terjebak untuk waktu yang di tepi dunia. Hal ini karena setelah mereka mencapai ujung dunia, mereka hanya akan bergerak jauh dari itu setelah mereka melakukan beberapa acak ternyata. Kami dapat mempercepat proses mendapatkan lobster dari dinding lagi dengan membuat mereka mengubah 180 derajat segera setelah mereka mencapai ujung dunia. Kita dapat memeriksa berada di ujung dunia dengan melihat jika mereka koordinat X adalah mendekati nol, atau dekat dengan lebar dunia–dan logika yang mirip untuk koordinat Y (dan tinggi dunia). Kode di bawah ini:

Yang selesai tutorial kepiting. Anda dapat terus bereksperimen dengan itu dan menambahkan fitur baru (seperti kedua pemain), atau menggunakan pengetahuan Anda untuk membuat skenario baru Anda sendiri. Selamat bersenang-senang!

Cara mengakses objek dari yang lain adalah pertanyaan umum bahwa Greenfoot pemula bertanya:

Bagaimana saya bisa mengakses variabel (atau metode) objek/kelas satu dari yang lain? Tapi tentu saja biasanya ini diungkap berbeda… kadang-kadang pemula tidak belum memahami apa “variabel” atau “objek”. Jadi pertanyaan mungkin terlihat lebih seperti ini: Bagaimana caranya memperbarui konter Skor setiap kali sebuah asteroid dihancurkan oleh roket?

Sekarang, lihatlah skenario Greenfoot digambarkan di atas: tut-akses-p1 (klik kanan dan buka link di jendela baru atau tab). Skenario ini adalah permainan yang sederhana di mana Anda tekan spasi untuk api tembakan dari roket di asteroid yang lewat overhead. Ada penghitung Skor, tetapi saat ini tidak fungsional. Klik pada link “terbuka skenario dalam Greenfoot” untuk men-download salinan skenario ke komputer Anda, dan mulai bekerja di atasnya. Dalam contoh ini, ada beberapa kelas, termasuk “Counter”, “Roket”, dan “Shot”. Konter memiliki metode yang disebut “bumpCount()” yang meningkatkan Skor yang menampilkan counter:

Jika Anda tidak mengerti kode tadi, jangan khawatir tentang hal itu sekarang. Hal yang penting untuk mengetahui adalah: jika Anda memanggil metode bumpCount(), itu akan meningkatkan jumlah yang menampilkan meja oleh jumlah yang Anda tentukan. (Coba! Klik kanan objek counter di dunia, memilih metode “bumpCount(int)”, dan menentukan nomor). Sekarang, di kelas Shot, kita mungkin memiliki metode yang disebut (dari metode act()) setiap kali asteroid

Buka editor untuk kelas Shot (klik-ganda kelas “Shot” di sebelah kanan). Sekarang pertanyaannya adalah: bagaimana dapat memanggil metode “bumpCount”, yang dalam kelas Counter, dari kelas Shot? Jika kita hanya mencoba untuk memanggil bumpCount() dengan cara normal, kita akan mendapatkan error ketika kita mencoba untuk mengkompilasi

Kita perlu untuk melakukan dua hal: pertama, menyatakan lapangan untuk menyimpan referensi ke Counter, dan kemudian menetapkan variabel counter yang dibuat. Mengubah ruang konstruktor sehingga tampak seperti ini

Pastikan kode Anda mengkompilasi sebelum Anda melanjutkan. Perhatikan bahwa kita menambahkan sebuah deklarasi untuk sebuah variabel yang disebut “theCounter”. Ini adalah variabel instance, berarti bahwa kita ingin menjaga nilai untuk selama dunia ada, dan begitu dinyatakan di luar konstruktor SpaceWorld (tapi di dalam kelas SpaceWorld). Sekarang, tambahkan sebuah metode ke ruang kelas untuk mengambil nilai “theCounter” sehingga dapat diakses oleh roket

Kita dapat mengakses dunia dari tembakan, dan kemudian memanggil metode getCounter di dunia untuk mendapatkan referensi ke konter; Akhirnya, kita dapat memanggil metode bumpCount referensi counter! Metode hitAnAsteroid kelas Shot maka akan terlihat seperti ini

Pergi ke depan dan membuat perubahan yang sama dalam salinan skenario. Pastikan mengkompilasi! Dan hanya itu! Kami memiliki solusi untuk masalah. Ketika tembakan perlu kenaikan counter, itu meminta seluruh dunia untuk referensi counter, dan kemudian memodifikasi konter menggunakan referensi. Menjalankan skenario dimodifikasi dan pastikan bekerja dengan benar. Untuk melihat solusi yang selesai, melihat pada kode sumber di sini

tut-access-p2
About, Supported By