katulsomin - MIC ITB

See also: Other Geeks@INDC

Proyek SilverLight Pertamaku: Game Memory Sederhana [Part 1]

Baru kemarin, saya blank total Hmm masalah SilverLight. Pengen belajar, dan untuk saya cara tercepat untuk mengerti adalah dengan mencoba.

Setelah membaca-baca beberapa tutorial dasar SilverLight, saya putuskan mau mencoba membuat sebuah game memory sederhana. Temanya salah satu karakter manga favorit saya, Crayon ShinChan..Smile

Star Ronde 1 : Layout Grafik dulu..

Layout dan grafik di silverlight menggunakan bahasa xaml, bahasa markup berbasis xml yang berfokus pada user interface. Cukup mudah dimengerti, saya cukup tahu tentang HTML dan XML, jadi konsep tidak ini begitu baru buat saya.

Dengan mengacu pada tutorial ini dan mengandalkan VS 2008, saya berniat untuk mengambil jalan purist, hanya mengandalkan kode. Go!

 

~~~~Confused

 

Membuat komponen tidak begitu sulit, tapi usaha menempatkan posisi dan pernak-pernik-nya bikin saya frustasi Tongue Tied memakai grid masih terasa kaku, tapi kalau memakai margin lebih repot lagi. Yah, saya memang tidak begitu berpengalaman membuat grafis dari code saja sih.. kalau membuat html saja selalu pakai Dreamweaver. Setelah 2 jam berkutat berusaha meluruskan component dan mengatur posisinya agar pas, saya memilih mencoba memakai MS Expression Blend Embarrassed

Memakai Blend ternyata jauh lebih mudahSmile. Sayang sekali WYSIWYG editor ini tidak menyatu dengan VS studio.

Oke, ini layout yang telah saya buat:

 Walau art sense saya kampungan, kurasa ini tidak terlalu buruk... Coding Time.

Star Ronde 2 : C#, I Choose You!

Programming dalam Silverlight dapat menggunakan bahasa pemrograman .NET apa saja, tapi setelah menimbang-nimbang, saya memilih menggunakan C#.

Alasan?

1. Saya tidak pernah memakainya dan pengen belajar C#

2. Karena kebanyakan tutorial dan orang lain pake C#, biar lebih konek.

Saya belum tahu caranya menampilkan code diblog ini biar enak dibaca.. tapi seluruh source codenya bisa didownload disini : sincan.zip

Pengalaman ngoding-nya:

  1. Pertama-tama saya mau membuat collection untuk gambar-gambar yang akan diload dulu. Shock! di C# tidak disediakan kelas generik Vector!  AaghSuper Angry, padahal Vector selalu menjadi kelas collection andalan saya di Java dan C++.. Oh well, untungnya kelas list di C# tidak begitu jauh beda.
  2. Lalu, saya mencari dulu algoritma yang cocok untuk "mengocok" gambarnya. Setelah konsultasi pada Syekh Google Al-Wikipedia, ketemu algoritma Fisher-yates Shuffle. Contoh di Wikipedia dalam Java, tapi mengubahnya ke C# hanya beberapa menit. Saya rasa coding di C# tidak jauh beda dengan Java. Smile
  3. Membuat fungsi untuk loading image,menangani klik dari mouse, dll. Tidak bertemu masalah disini..
  4. Tapi saat di test, enggak jalan. Ugh. Setelah ditelusuri, masalahnya ternyata pada saat membandingkan 2 gambar. Di library C# ternyata tidak mempunyai fungsi untuk membandingkan 2 gambar, sama atau tidak. 1 jam saya stuck disini. Saya sudah coba fungsi standar equals(), getHashCode(), getValue(), Source.. semuanya gagal. Sebetulnya masalah ini dapat dihindari hanya dengan membuat kelas turunan baru dari Image dengan informasi tambahan, tapi berarti banyak yang perlu diedit ulang.
  5. Akhirnya saya membuat fungsi sendiri untuk membandingkan 2 Image berdasarkan hubungannya dengan List dari gambar. Alternatif lain yang lebih universal adalah mengecek per pixel, tapi kayaknya malah bakal ngelambatin untuk program ini.

Game Selesai!  ... atau paling tidak, versi betanya, sih.. sampai disini dulu part 1. Smile

di Part 2, Insya Allah game ini akan saya tambahkan animasi, suara, timer, scoring system, tampilan "You Win!" yang bagusan, dll.  Cool

 Gambar Crayon ShinChan saya dapat dari sini: http://abnormalchild.deviantart.com/art/kureyon-shin-chan-122920030

Download Source Code-nya : sincan.zip

Diharapkan saran dan kritiknya..

Share this post: | | | |

Comments

reyza said:

ini menggunakan expression blend 3 preview?

# June 21, 2009 7:12 PM