Pendefinisian variabel
Agar objek (bola dan keranjang) yang akan kita gambar dilayar dapat digerakkan, kita menambahkan variabel X,Y untuk menentukan posisi objek. Dalam kordinat kartesian, X sebagai kordinat horizontal dan Y sebagai kordinat vertikal. Selain X,Y, kita juga menambahkan variabel speed untuk menentukan kecepatan gerak objek. Pendefinisian variabel dilakukan diluar game loop. Yaitu diatas while:

bolaX dan keranjangX saya beri nilai 88 agar posisisinya ditengah layar karena resolusi hp saya 176x208 (176 / 2 = 88), silahkan disesuaikan dengan resolusi hp anda.
Penggambaran objek ke layar
Selanjutnya proses penggambaran. sebelum menambahkan gambar bola dan keranjang kita merubah background yang putih menjadi hitam dulu mengunakan attribut clear(warna). Penambahannya ditaruh didalam loop.

Sekarang background sudah menjadi hitam (run script untuk mengetes). Selanjutnya menggambar objek. Gambar yang akan kita pakai menggunakan gambar flat lingkaran untuk gambar bola dan kotak untuk gambar keranjang. Flat gambar ini menggunakan fungsi dari module graphics yaitu ellipse() dan rectangle(). Alasan saya menggunakan gambar flat ini karena setahu saya bisa berjalan pada semua type s60 mulai dari os6 (mohon dibenarkan kalau salah).
Sedangkan kalau pakai file gambar (.jpg, .png dll) pada os6 harus menggunakan module tambahan yaitu image1st untuk meload gambar dan masalah utamanya adalah tidak support transparansi pada os6. Tapi bukan masalah untuk os7 keatas. Back to topic, pertama kita membuat gambar keranjang dulu. Ukurannya 20x40 piksel.

Pada keranjangX-20 kita mengatur agar posisi kiri kotak selalu berada pada "posisi keranjang dikurangi 20". Angka 20 adalah "lebar keranjang dibagi 2" (40 / 2 = 20). Dan pada keranjangX+10 kita mengatur agar posisi kanan kotak selalu berada pada "posisi keranjang ditambah 20". Dengan begitu posisi keranjang (keranjangX) berada ditengah2 objek dan memudahkan untuk melakukan deteksi tumbukan. Dan pada keranjangY juga sama. Syntax 0x0000ff adalah warna keranjang.
Selanjutnya kita menggambar bola. Tehniknya sama, bedanya kita menggunakan ellipse(). Ukuran bolanya 20x20

Input player
Sekarang sudah ada gambar keranjang kotak dan gambar bola, tapi belum bisa bergerak. Agar keranjang dapat dikontrol oleh player. Kita membuat script untuk memberi output berdasarkan input player. Saat player memberi input dengan menekan tombol arah kanan, kita atur agar program memberi output yaitu menggerakkan objek keranjang ke kanan. Saat player memberi input kiri, kita atur agar program memberi output menggerakkan objek keranjang ke kiri.

Kode "if key.is_down(key_codes.EScancodeLeftArrow):" terdiri dari satu baris. Kode "keranjangX -= speedKeranjang" juga satu baris. Sekarang jika di run script, saat tombol kiri ditekan keranjang bergerak kekiri. Syntax ini menge-cek apakah tombol arah kiri ditekan atau tidak. Dan pada baris dibawahnya adalah mengupdate posisi keranjangX dengan cara mengurangi nilai keranjangX sebanyak nilai speedKeranjang. Cara kerjanya seperti ini:
keranjangX = 88
speedKeranjang = 1
dan pada loop:
- keranjangX = keranjangX-speedKeranjang
88-1 = 87
- keranjangX = keranjangX-speedKeranjang
87-1 = 86
- keranjangX = keranjangX-speedKeranjang
86-1 = 85
proses itu akan dilakukan terus - menerus selama tombol arah kiri ditekan. Hasilnya seolah2 gambar keranjang bergerak kekiri.
Cara yang sama digunakan untuk menggerakan keranjang ke kanan. Bedanya kita menambahkan nilai speedKeranjang ke keranjangX.

Untuk gerakan bola akan saya gabung dengan pembahasan deteksi tumbukan pada tahap selanjutnya. Script tahap ini bisa di download disini:
GameSayaTahap2.zip
3 komentar:
judulnya tetep bagian 1, wkwkwk..
Walah iyo haha, edit sik
Sambungan tahapannya ada di tigan.mwb.im
Posting Komentar