Rabu, 05 Januari 2011

Hello world (part 1)

Untuk latihan pertama kita, mari kita membuat program yang paling terkenal sejagat raya.

'Hello World'

Semua orang yang pernah belajar pemrograman komputer, pasti tau program ini. Yup, program yang menampilkan tulisan 'Hello World' dilayar komputer kita. Terdengar simple kan?

OK, kita mulai latihan nya.

Pertama, kita mulai dengan membuka program Visual C# ya..
Buat project baru dengan template Windows Game (4.0)
Isi judulnya dengan Hello World, atau terserah kamu saja.




Klik OK, tunggu sebentar hingga project baru selesai dibuat.

Kalo sudah muncul coding dengan judul Game1.cs, berarti project baru telah berhasil dibuat. Sekarang tekan F5 untuk mencoba program kita.
Dada..kalo muncul window baru berwarna biru dengan judul Hello World, itu artinya program game pertama sukses dibuat dan bisa berjalan dengan baik dan benar..selamat deh  :)


Terus mana nih tulisan Hello Worldnya??? Tuh, di title bar-nya..! hehe..
Ok, bukan ini program yang akan kita buat. Tapi kita akan menampilkan tulisan Hello world pada layar yang berwarna biru.

Tunggu dulu..sebelum kita lanjutkan, apakah ada yang menmui error seperti ini?


Jangan panik! Ikuti perintah saya!
Klik Project --> Hello World Properties...
Pindahkan Game Profile ke Use Reach (semula Use HiDef)


Ok, sekarang coba tekan lagi F5. Kalo masih ga bisa juga, lem kuning aja tuh komputer. Pasti komputer jadul deh..hehe..

Ok, back to topick!
Sebelum kita melanjutkan latihan kita menambahkan tulisan Hello World, ada baiknya kita coba pelajari dulu struktur pemrograman game di XNA.

Berikut sedikit copas dari blog tetangga untuk membantuk pemahaman kita tentang alur program xna.
(http://dodollipret.wordpress.com/2008/05/06/asset-dan-input-di-xna/)

Perhatikan jendela code editor, disana sudah disediakan 5 buah method yaitu : Initialize(), LoadContent(), UnloadContent(), Update() dan Draw().
  • Initialize() sebagai tempat untuk mengeset nilai awal variable-variable.
  • LoadContent() sebagai tempat untuk memanggil content (gambar, font, suara, map, dll).
  • Update() sebagai tempat untuk meng-update variable variable.
  • Draw() sebaga tempat untuk memanggil fungsi untuk menggambar ke layar.
  • UnloadContent() kebalikan dari LoadContent() tentunya..hehe. yaitu tempat untuk bersih2 content

Hal yang perlu di catat adalah bahwa method Update() dan Draw() selalu dipanggil secara bergantian. Disanalah kita harus menulis core dari program game kita. 

Update() biasanya diisi dengan kode program untuk meng-update nilai dari variable posisi player, posisi musuh, posisi peluru, check tumbukan (collision) dll. Artinya disanalah inti dari engine game kita ditulis.

Sedangkan Draw() adalah tempat untuk memanggil fungsi-fungsi drawing. Disini kita harus menggambar satu-per-satu texture kita (player, enemy, bullet, explotion, dll) sesuai dengan posisinya masing-masing.

Nah kombinasi kedua method inilah (update-draw) yang mengakibatkan terjadinya pergerakan gambar-gambar di layar monitor. Tiap pemanggilan Draw() bisa diasosiasikan dengan dengan sebuah Frame (dalam flash, atau video). Sehingga banyaknya pemanggilan Draw() dalam 1 detik bisa disebut sebagai Frame Per Second (FPS). Semakin tinggi FPS-nya semakin halus pergerakan gambar-gambar di monitor kita.

Karena Update() dan Draw() saling dipanggil bergantian, maka apabila method Update() dipanggil terlalu lama (perhitungan yang dilakukan didalamnya terlalu rumit) maka jumlah pemanggilan Draw() per-second-nya akan semakin kecil. Kalau terlalu kecil (dibawah 30 FPS) maka akan terasa ada efek patah-patah dalam gameplay game kita.

Huff..baru setengah jala, tulisannya dah banyak..
Sambung ke part 2 aja yak..

Tidak ada komentar:

Posting Komentar