Menambahkan lebih banyak animasi
Sekarang kita tambahan animasi pemain yang lain. Pertama, kita perlu tambahkan beberapa platform untuk pemain melompat-lompat sehingga kita bisa lihat saat animasinya nanti bekerja.
Kembali ke Layout view di mana kamu bisa melihat pemain dan tile lantai. Click dan drag untuk memilih ketiga tile tersebut, tahan Control dan drag tile-tile tersebut untuk membuat salinannya. Lakukan ini beberapa kali dengan ketinggian yang berbeda untuk membuat beberapa pijakan untuk melompat-lompat. Ada baiknya kita melakukan zoom out.
Untuk melihat lebih baik, kita bisa perbesar ukuran window. Klik nama project di bagian atas Project Bar untuk menampilkan properti project ini, ubah Window Size ke 800,600.
Sekarang karena sudah ada platform untuk melompat dan layar yang lebih besar sehingga kita bisa melihat lebih banyak hal, kita akan tambahkan animasi pemain yang lain.
Ingat kita menggunakan aksi Set mirrored untuk membalik pemain ke kanan dan kiri, jadi kita cukup mengimpor animasi dengan pemain menghadap ke kanan.
Double click pemain di tampilan Layout untuk memunculkan animations editor. Ada empat animasi yang akan kita import:
1. Idle ke lari (tween)
2. Lari
3. Lompat ke lari
4. Lari ke berdiri
Untuk setiap animasi di atas, proses menambahkannya adalah sebagai berikut:
1. Klik kanan di animation bar (kemungkinan window yang melayang di kanan yang berisi animasi Idle) dan pilih Add animation.
2. Masukkan nama animasi. Gunakan nama yang mudah dimengerti seperti IdleToRun.
3. Klik animasi tadi untuk pindah ke animasi tersebut. Saat ini seharunya hanya ada satu frame kosong.
4. Klik kanan di Animation frames bar dan pilih Import sprite strip...**. (kemungkinan ada di bawah dan berisi frame-frame animasi yang bersangkutan)
5. Temukan sprite strip yang diinginkan. Perlu diketahui pake Jungle sprite juga tersedia dalam PNG yang terpisah dan bisa diimpor per frame, tapi biasanya akan lebih cepat menggunakan sprie strip. Jadi sekarang pilih strip animasi yang lengkap
6. Periksa apakah jumlah sel-nya sudah benar, lalu klik OK.
7. Hapus frame kosong yang pertama, kita tidak akan membutuhkannya.
8. Di frame pertama, tempatkan origin di kaki pemain. Cobalah untuk menyamakan posisinya dengan animasi Idle. Terapkan ke semua frame animasi seperti yang kita lakukan pada animasi Idle (klik kanan titik Origin pada daftar dan pilih Apply to whole animation).
8. Tahan shift dan tekan Crop untuk memotong (area sisa yang transparan) di semua frame sekaligus.
9. Di Properties Bar, pastikan setiap animasi memiliki properti berikut:
Speed: 22 pada animasi JumpFromStand, 15 untuk sisanya
Loop: Yes pada animasi Run, No untuk sisanya
Lakukan ini untuk setiap animasi sehingga kita punya lima animasi untuk pemain.
Tutup animation editor. Sekarang kita perlu memberi tahu objek pemain kapan suatu animasi perlu dijalankan. Untuk melakukan ini, behavior platform menyediakan animation trigger - event yang akan dijalankan dalam kondisi pemain perlu mengganti animasi. Kita cukup menggunakan aksi Set animation pada objek pemain. Perhatikan bahwa Platform behavior ada pada objek PlayerBox sedangkan animasi ada pada objek Player.
Perhatikan pula kita memiliki animasi IdleToRun, artinya saat kita mulai bergerak, animasi akan berjalan seperti berikut ini:
Berhenti: Idle
Mulai bergerak: IdleToRun
Saat IdleToRun selesai: Run
Hal ini juga bisa dengan mudah kita atur dengan event.
Mengatur event animasi
Semoga sekarang kamu sudah terbiasa dengan proses membuat suatu event:
1. Pilih objek.
2. Pilih kondisi atau aksi.
3. Opsional: masukkan parameter jika perlu.
Pindah kembali ke tampilan Event Sheet. Pertama, kita perlu set animasi menjadi IdleToRun saat kita bergerak. Kita akan menggunakan trigger On moved dari behavior Platform pada objek PlayerBox:
Ketika animasi IdleToRun selesai, kita perlu kembali ke animasi Run. Kita melakukan ini menggunakan trigger On animation finished di objek Player:
Jika pemain berhenti dari kondisi berlari, kita perlu kembali ke animasi Idle. Kita lakukan ini menggunakan trigger On stopped pada objek PlayerBox:
Jalankan gamenya. Sekarang pemain sudah bisa berubah dari lari ke berhenti dengan animasi IdleToRun dijalankan di antaranya. Tapi animasi lompat belum bisa dijalankan. Karena kita punya dua animasi lompat, kita perlu set animasi lompat yang berbeda tergantung permain sedang berlari atau tidak. Hal ini bisa dicapai dengan event berikut:
Perhatikan sekarang kita sudah menggunakan sub-event, yang akan muncul di bawah event on Jump. Sub-event akan diperiksa setelah event 'induk' sudah dijalankan. Hal ini cocok dengan logika yang ingin kita terapkan: saat behavior Platform melompat, jika sedang bergerak set dengan JumpFromRun, jika tidak set dengan JumpFromStand.
Untuk membuat sub-event, klik kanan di event induk dan pilih Add -> Add sub-event, atau pilih event tersebut dan tekan S.
Untuk membuat event di atas kamu akan perlu melakukan invert terhadap sebuah kondisi (dan akan muncul tanda silang merah). Kondisi yang diinvert berarti kebalikan dari yang tertulis. Dalam kasus ini, invert dari kondisi "Platform is moving (sedang bergerak)" adalah "Platform is NOT moving (sedang TIDAK bergerak)". Untuk menginvert sebuah kondisi, tambahkan kondisinya seperti biasa, klik-kanan pada kondisi tersebut lalu pilih Invert, atau pilih dan tekan tombol I.
Tinggal satu hal lagi yang perlu kita lakukan: pemain akan terus berada di dalam animasi Jump setelah melompat, bahkan setelah mendaratpun animasinya masih lompat. Kita perlu set secara manual animasinya menjadi Idle atau Run saat pemain mendarat. Hal ini mirip dengan event sebelumnya: pada trigger animasi On land, jika pemain bergerak set "Run", jika tidak set "Idle".
Setelah kamu set semua event tadi, jalankan gamenya. Selamat! Sekarang kamu sudah membuat karakter pemain yang beranimasi! Perhatikan animasi-animasi yang berbeda jika kamu melompat dari keadaan diam atau melompat dari keadaan berlari. Perhatikan pula saat kamu mendarat, kamu akan melihat animasi Idle atau kembali ke animasi Run, tergantung kamu bergerak atau tidak.
Sekarang saatnya kita membuat karakter musuh!