Melanjutkan pembahasan sebelumnya, video ini membahas empat blok terakhir dari kategori Events: loudness, timer, serta konsep broadcast message (mengirim dan menerima pesan antar sprite).
Scratch bisa mendeteksi seberapa keras suara di sekitar (misalnya lewat mikrofon perangkat). Untuk melihat nilai loudness secara real-time, buka kategori Sensing dan centang checkbox di samping blok loudness — sebuah monitor kecil akan muncul di stage menampilkan nilai loudness yang terus berubah sesuai suara di sekitar. Semakin sepi, nilainya akan mendekati 0 atau 1; semakin keras suaranya, nilainya akan semakin tinggi.
Karena loudness termasuk event, kita bisa memicu kode berdasarkan nilai tersebut. Contoh:
when loudness > 55
say "I am loud" for 5 seconds
Setiap kali suara yang terdeteksi melebihi nilai 55, sprite akan menampilkan gelembung teks “I am loud”.
Di balik layar, Scratch memiliki sebuah timer (pengatur waktu) yang otomatis berjalan dan terus bertambah sejak project mulai dijalankan. Untuk melihat nilainya, buka kategori Sensing dan centang checkbox pada blok timer — monitor timer akan muncul di stage. Timer ini bisa direset ke nol kapan saja dengan mengklik tombol reset timer pada monitornya.
Kita bisa memicu kode berdasarkan nilai timer ini. Contoh:
when timer > 30
say "30 seconds passed"
Begitu timer melewati angka 30 (detik), sprite otomatis akan menampilkan teks “30 seconds passed”.
Jika kita memiliki dua sprite dan ingin sprite A “berkomunikasi” dengan sprite B, satu-satunya cara adalah melalui broadcast message (siaran pesan). Sprite A mengirim (broadcast) sebuah pesan, lalu sprite B bisa “mendengarkan” dan merespons pesan tersebut. Ada dua blok yang berperan:
broadcast _ — mengirim/menyiarkan pesan.when I receive _ — menerima pesan tertentu dan menjalankan kode sebagai respons.Sebagai contoh, tambahkan dua sprite, misalnya Batter A dan Batter B. Skenario: Batter A berpindah dari base 1 ke base 2, lalu mengirim pesan. Setelah Batter B menerima pesan tersebut, Batter B akan berpindah dari base 3 ke base 4.
Skrip pada Batter A:
when [green flag] clicked
glide 1 secs to x: [base2 x] y: [base2 y]
broadcast [run]
say "I reached" for 5 seconds
Saat membuat pesan baru, klik dropdown pada blok broadcast, pilih New Message, lalu beri nama pesan tersebut (misalnya “run”).
Skrip pada Batter B:
when I receive [run]
glide 1 secs to x: [base4 x] y: [base4 y]
Saat dijalankan, Batter A akan bergerak ke base 2, mengirim pesan “run”, lalu langsung melanjutkan kodenya sendiri (menampilkan “I reached”). Bersamaan dengan itu, Batter B yang menerima pesan “run” juga akan mulai bergerak ke base 4.
Pada contoh di atas, setelah Batter A mengirim pesan, ia langsung lanjut menjalankan kode berikutnya tanpa menunggu Batter B selesai bergerak. Jika kita ingin Batter A menunggu sampai Batter B benar-benar selesai menjalankan kodenya sebelum melanjutkan, gunakan blok broadcast _ and wait sebagai pengganti broadcast _ biasa:
when [green flag] clicked
glide 1 secs to x: [base2 x] y: [base2 y]
broadcast [run] and wait
say "I reached" for 5 seconds
Dengan perubahan ini, teks “I reached” pada Batter A baru akan muncul setelah Batter B selesai bergerak dari base 3 ke base 4 — bukan bersamaan seperti sebelumnya.
when loudness > _ memicu kode berdasarkan tingkat volume suara yang terdeteksi.when timer > _ memicu kode berdasarkan waktu (detik) sejak project berjalan; timer bisa direset kapan saja.broadcast _ mengirim pesan ke semua sprite dan langsung lanjut menjalankan kode berikutnya (tidak menunggu).broadcast _ and wait mengirim pesan, namun menunggu sampai script penerima pesan selesai dijalankan sebelum lanjut.when I receive _ menjalankan kode saat pesan tertentu diterima — inilah cara sprite-sprite di Scratch bisa saling “berkomunikasi”.