pemrograman game tetris c#

Download Pemrograman game tetris C#

If you can't read please download the document

Post on 16-Nov-2014

656 views

Category:

Software

5 download

Embed Size (px)

DESCRIPTION

 

TRANSCRIPT

  • 1. CSH202 Pemrograman Game Tetris Dengan C# Pemgraman Game Tetris Dengan C# (CSH202) Zeddy Iskandar Project Otak 2005 Project Otak http://otak.csharpindonesia.net 2

2. CSH202 Pemrograman Game Tetris Dengan C# Project Otak Project otak adalah project community yang bertujuan untuk menyediakan resources tentang informasi teknologi .NET bagi orang-orang yang ingin belajar teknologi .NET. Trademark Acknowledgements Team project otak akan berusaha menyediakan informasi trademark termasuk semua produk yang telah disebut didalam buku ini. Windows, Framework .NET, C#, dan Visual Studio.NET adalah trademark dari Microsoft Credits Project Manager Secretary Agus Kurniawan Dewi Maya Technical Writer Zeddy Iskandar Editor Agus Kurniawan Cover Designer Danni Afasyah Version 1.0 Printed: 2 April 2005 Book Code: CSH202 Update E-Book : http://otak.csharpindonesia.net Semua materi yang ada didalam buku ini adalah satu kesatuan. Tidak boleh sebagian atau seluruh materi didalam buku ini diubah tanpa seijin team project otak. Project Otak http://otak.csharpindonesia.net 3 3. CSH202 Pemrograman Game Tetris Dengan C# Kata Pengantar Saya ingin membuat e-book yang fun dan informatif. Bagi saya, menulis adalah pekerjaan yang membosankan, kecuali bila topik yang kita tulis membuat kita antusias. Begitulah, saya ingin membuat e-book yang saya sendiri senang menulisnya. Mudah- mudahan bermanfaat. Apa yang Dapat Dipelajari Membuat elemen grafik untuk game. Menggunakan Visual Studio .Net. Membuat simple game semacam Tetris. Mengerti konsep Windows Message seperti WM_PAINT. Membuat game secara object-oriented. Mengaplikasikan Design Pattern Factory. Target Pembaca Banyak programmer yang sebelum menyentuh komputer menyentuh permainan konsol seperti Nintendo, Sega, PS, dsb. Ketika mereka belajar programming, biasanya mereka tertarik untuk membuat game, tapi tidak tahu harus mulai dari mana. Buku ini bisa dijadikan fondasi mereka untuk belajar tentang game-programming. Pembaca HARUS sudah mengerti bahasa programming C#. Andaikan tidak, saya sarankan untuk membaca e-book CSH101: Pengenalan Bahasa C# oleh Agus Kurniawan dkk. di website Otak Project (http://otak.csharpindonesia.net) Pembaca juga MINIMAL sudah pernah membuat project di Visual Studio dan pernah menggunakan Graphics Editing Program semacam Adobe Photoshop atau bahkan Microsoft Paint. Bukan berarti Anda harus jago graphics design atau Photoshop Expert, tapi cukup tahu bagaimana membuat simple object semacam segi empat dsb. Baiklah, tanpa banyak basa-basi, mari kita mulai perjalanan kita ke dunia game- programming. Zeddy Iskandar Curtin University of Technology (Malaysia Campus) Project Otak http://otak.csharpindonesia.net 4 4. CSH202 Pemrograman Game Tetris Dengan C# Tentang Penulis Zeddy Iskandar Zeddy Iskandar, mahasiswa semester akhir Curtin University of Technology (Malaysia Campus), mulai belajar programming dengan GW-BASIC sewaktu sekolah Primary 5 di Colombo International School, Sri Lanka. Semenjak sahabatnya membeli computer Compaq 486-DX 33Mhz, dia menjadi lebih tertarik dengan dunia komputer. Sempat vakum dari dunia komputer ketika di Singapura (karena komputer ibu kost nya dipindahkan) dan SMA di Jakarta (karena komputernya mengeluarkan asap dan orangtua tidak mau memperbaikinya). Ketika sang Ayah berangkat tugas lagi ke Brunei, dunia komputer khususnya programming mulai diarungi kembali. Mulai dengan Visual Basic berangsur-angsur ke C, C++, PHP, Java, JSP,. Sekarang konsentrasi di Microsoft .Net platform. Cita-citanya adalah mengajar programming di sebuah universitas kelak. Dia dapat dihubungi melalui email zeddy.iskandar@gmail.com Kupersembahkan ebook ini untuk kedua orangtuaku, yang akhirnya menyadari potensi anaknya di dunia komputer =) Especially sang Ayah, yang kartu kreditnya sering dibobol untuk membeli buku programming di Amazon.com. Ill repay you someday, Dad! Project Otak http://otak.csharpindonesia.net 5 5. CSH202 Pemrograman Game Tetris Dengan C# Daftar Isi Project Otak .......................................................................................................3 Credits.................................................................................................................3 Kata Pengantar.....................................................................................................4 Tentang Penulis....................................................................................................5 Daftar Isi ...............................................................................................................6 1. Menyusun Blok-Blok Tetris ...............................................................................8 1.1 Data Struktur untuk Blok Tetris............................................................................... 8 1.2 Data Struktur Papan Permainan............................................................................... 9 1.3 Elemen untuk blok Tetris....................................................................................... 10 2. Design Klas Blok.............................................................................................14 2.1 UML Diagram........................................................................................................ 15 2.2 Visual Studio .Net.................................................................................................. 15 2.3 Klas Blok ............................................................................................................... 17 2.4 Klas BlokGaris....................................................................................................... 19 2.5 Klas BlokKotak...................................................................................................... 23 2.7 Klas BlokZNormal................................................................................................. 26 2.8 Klas BlokZTerbalik ............................................................................................... 27 2.9 Klas BlokLNormal................................................................................................. 28 2.10 Klas BlokLTerbalik ............................................................................................. 30 3. Papan Permainan ...........................................................................................33 3.1 Menambahkan fields.............................................................................................. 35 3.2 Menambahkan methods ......................................................................................... 36 3.3 Koordinat Pixel dan Grid Unit............................................................................... 37 4. Klas ImageBlok dan Menggambar di atas Canvas .........................................39 4.1 Klas ImageBlok ..................................................................................................... 39 4.2 Modifikasi Klas Blok............................................................................................. 40 4.3 Definisi Draw() di Klas Blok................................................................................. 41 5. Mengaplikasikan Factory Pattern...................................................................44 5.1 Klas BlokFactory ................................................................................................... 44 5.2 Method BuatBlokBaru() untuk klas PapanPermainan........................................... 46 6. Menggunakan Invalidate() ..............................................................................48 6.1 Penambahan method SetElemen() dan GetElemen()............................................. 49 6.2 Modifikasi klas Blok.............................................................................................. 50 6.3 Modifikasi PapanPermainan.BuatBlokBaru() ....................................................... 51 6.4 Sekilas tentang Invalidate().................................................................................... 51 7. Merespons Keyboard Event............................................................................54 7.1 Merespons key Bawah........................................................................................... 55 7.2 Merespons key Kiri................................................................................................ 56 7.3 Merespons Key Kanan........................................................................................... 56 8. Menumpuk Blok ..............................................................................................58 8.1 Modifikasi Klas Blok............................................................................................. 58 Project Otak http://otak.csharpindonesia.net 6 6. CSH202 Pemrograman Game Tetris Dengan C# 8.2 Mengkontrol Penurunan Blok................................................................................ 58 8.3 Mengkontrol Penggeseran Kiri.............................................................................. 59 8.4 Mengkontrol Penggeseran Kanan.......................................................................... 61 9. Merotasikan Blok ............................................................................................63 9.1 Menambahkan ICloneable ke klas Blok ................................................................ 63 9.2 Method BisaRotasi() untuk klas PapanPermainan................................................. 64 9.3 Modifikasi KeyPress-handler................................................................................. 66 10. Menghilangkan Baris Komplet ......................................................................68 10.1 Menampilkan Blink effect................................................................................ 70 11. Menggunakan Timer..............................................................................