Agate Mobile Game Developer Camp

dokumen-dokumen yang mirip
Penerapan Algoritma Greedy dalam Permainan Othello

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

Agate Mobile Game Developer Camp

Struktur Kontrol. Contoh, Akan tercetak x is 100 jika nilai yang disimpan pada variable x adalah 100:

TUGAS PEMROGRAMAN DASAR PENGULANGAN WHILE

Selection, Looping, Branching

Download Game Maker Disini

Praktikum Grafik. Gambar 1. Buat class dengan nama Ball. Untuk membangkitkan sebuah objek bola adalah

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

Bab 6. Layer Manager

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

BAB IV HASIL DAN UJI COBA

Aplikasi Graf dalam Merancang Game Pong

Kreatif dan Produktif di Internet : Pengenalan dan Pelatihan Scratch

BAB 4 IMPLEMENTASI DAN PENGUJIAN SISTEM

a. TRUE b. FALSE c. Jawaban A dan B keduanya dimungkinkan benar d. Tidak dapat ditentukan e. Tidak ada jawaban di antara A, B, C, D yang benar

BAB 1 PENDAHULUAN Latar Belakang

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

Penerapan Algoritma Greedy dalam Pembuatan Artificial Intelligence Permainan Reversi

BAB IV TAMPILAN HASIL DAN PEMBAHASAN

BAB 5. Kondisional Perulangan. Materi. Pengenalan Perulangan Perulangan For Perulangan While Perulangan dengan menggunakan Kondisional If

Algoritma Greedy dalam Artificial Intelligence Permainan Tic Tac Toe

Penggunaan Algoritma DFS dalam Pencarian Strategi Permainan Catur

6 Maret Structure of Java [Penyeleksian Kondisi]

Strategi Algoritma Penyelesaian Puzzle Hanjie

Modul Pelatihan : Pembuatan Game Animasi Menggunakan Greenfoot

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

BAB III ANALISIS DAN PERANCANGAN

BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah

Perulangan, Percabangan, dan Studi Kasus

BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM

TEKNIK OPTIMASI. Dependensi Optimasi. Optimasi Lokal. Menghasilkan kode program dengan ukuran yang lebih kecil, sehingga lebih cepat eksekusinya.

BAB II KAJIAN TEORETIS DAN HIPOTESIS PENELITIAN

Penerapan Algoritma Greedy Pada Game Tower Defense: Tower of Greece

Penggunaan Algoritma Backtracking pada Permainan Mummy Maze

LAMPIRAN 1. INSTRUMEN PENELITIAN Test of Gross Motor Development 2 (TGMD-2)

Pertemuan 9: BRANCHING/PERCABANGAN dalam C LOOPING/PERULANGAN/ITERASI dalam C

JAVA BASIC PROGRAMMING Joobshet

PUTERA BATAM LOGIKA INFORMATIKA DAN ALGORITMA DAFTAR ISI. BAB IV : PEMILIHAN A. Pengertian

BAB IV IMPLEMENTASI DAN EVALUASI GAME

PENERAPAN METODE COLLISION DETECTION DALAM PERMAINAN BERBASIS ANDROID. Yulianti Haerun Nisa,Prihastuti Harsani dan Arie Qur ania.

Implementasi Pohon Keputusan untuk Membangun Jalan Cerita pada Game Engine Unity

Pertemuan 4: Struktur Kontrol Pemrograman : Loop Bersarang (Nested Loop)

Pemrograman Fery Updi,M.Kom

Perseptual motorik pada dasarnya merujuk pada aktivitas yang dilakukan. dengan maksud meningkatkan kognitif dan kemampuan akademik.

BAB 3 METODOLOGI 3.1. Analisis Kebutuhan dan Masalah Analisis Kebutuhan

3. Struktur Perulangan dalam Bahasa C++

PANDUAN PRAKTIKUM DASAR ARDUINO

BAB IV HASIL DAN UJI COBA

MODUL 6 PROYEK PERANCANGAN RANGKAIAN DIGITAL 2. STUDI PUSTAKA

Penerapan Algoritma Greedy untuk Permainan Halma

MOMENTUM & IMPULS. p : momentum benda (kg.m/s) m : massa benda (kg) v : kecepatan benda (m/s)

PERTEMUAN 3 TAHAPAN PEMBUATAN PROGRAM

Tutorial : Membuat Permainan Flappy Bird menggunakan Unity3D

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

Kuliah Online : TEKKOM [2013/VI]

BAB III PERANCANGAN SISTEM

BAB III METODE PENELITIAN

24/09/2017 PERCABANGAN

3. Struktur Perulangan dalam C++

Bab 4 Hasil dan Pembahasan

ShortHand If Else di Java

BAB IV DESKRIPSI PEKERJAAN. media promosi digital bernama Advergame. Dalam kerja praktik ini penulis

Bab 4 Perintah Perulangan

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

Penggunaan Algoritma Greedy Dalam Perancangan Papan Teka Teki Silang

Pembuatan Game Tebak Tentara di Pascal (Part 1)

Pada pertemuan ini kita akan membahas :

Simple & Powered Machines Category Ball in Box

Penggunaan Graf dalam Pemodelan Matematis Permainan Delapan Jari

SIMULASI AUTONOMOUS VEHICLE DI UNIVERSITAS KRISTEN SATYA WACANA SALATIGA

BAB III PERANCANGAN KECERDASAN-BUATAN ROBOT PENCARI JALUR

MODUL C++ II. Operator

BAB I PENDAHULUAN. badan sesuai dengan fungsinya masing-masing. Manusia sadar dengan

Materi Fluida Statik Siklus 1.

Scope Variable. Sebuah variabel di dalam sebuah fungsi memiliki jangkauan tertentu. Skop variabel terdiri dari:

BAB IV IMPLEMENTASI DAN PENGUJIAN

SEARCHING. Pusat Pengembangan Pendidikan Universitas Gadjah Mada 1

BAB IV PENGUJIAN HASIL DAN ANALISA

Pembuatan Game Tebak Tentara di Pascal (Part 2)

PANDUAN PRAKTIKUM DASAR ARDUINO

MODEL PERMAINAN LATIHAN JASMANI UNTUK ANAK USIA TAHUN PERMAINAN NET (NET GAME)

PEMROGRAMAN TERSTRUKTUR PERTEMUAN VI KOMPONEN KOMPONEN PEMROGRAMAN TERSTRUKTUR

BAB 3 PENANGANAN JARINGAN KOMUNIKASI MULTIHOP TERKONFIGURASI SENDIRI UNTUK PAIRFORM-COMMUNICATION

Algoritma Greedy dalam Strategi Permainan Centipede

Control Structure. Dasar Pemrograman C Mikrokontroler AVR. Hendawan Soebhakti Oktober 2009

Studi Mengenai Perbandingan Sorting Algorithmics Dalam Pemrograman dan Kompleksitasnya

PENGGUNAAN ALGORITMA BACKTRACKING DALAM PENCARIAN KOEFISIEN ROOK POLYNOMIAL

TUGAS MATA KULIAH TEKNIK KOMPILASI

MATERI TIK KELAS 5 SEMESTER 1 SD KATOLIK SANTA MARIA MAGELANG

PENERAPAN ALGORITMA BACKTRACKING PADA PERMAINAN WORD SEARCH PUZZLE

PANDUAN PRAKTIKUM DASAR ARDUINO

Implementasi Algoritma DFS pada Pewarnaan Gambar Sederhana Menggunakan Bucket tool

Petunjuk penggunaan Aplikasi Final Action Hero

BAB 5 SPRITE. Contoh sebuah Sprite

BAB III ANALISA MASALAH DAN RANCANGAN PROGRAM

PERBANDINGAN ALGORITMA GREEDY DAN BRUTE FORCE DALAM SIMULASI PENCARIAN KOIN

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

Transkripsi:

Programmer Handout Day #2 Pada kesempatan kali ini kita akan mempelajari tentang Collision Detection dan Simple AI. Untuk mempermudahnya, maka akan kita coba membuat game sederhana, yaitu Pong. Pong merupakan game 2D dimana ada 2 buah pemukul dan sebuah bola. 1 pemukul akan kita kendalikan, sedangkan pemukul yang lain akan dikendalikan oleh AI. Aturan Pong: 1. Pemukul harus menjaga agar bola tidak melewati daerahnya. 2. Bola akan terus memantul hingga bola melewati daerah lawan. 3. Daerah samping selain tempat yang harus dijaga oleh pemukul, hanya akan memantulkan bola saja. Pertama - tama, mari kita identifikasikan kebutuhan gambarnya. 1. Background berwarna hitam.

2. 2 buah pemukul berwarna putih, berbentuk persegi panjang. 3. Sebuah bola berwarna putih

Setelah membuat gambar statis seperti di atas, mari kita kembangkan agar pad dan bola kita bisa bergerak. Bagaimana caranya? Pertama tama kita harus membuat agar posisi dari pad dan bola dinamis. 1. Pad Karena kita hanya akan menggerakkan Pad secara horizontal, maka posisi awal X yang akan kita manipulasi. Kita akan membuat variable baru yaitu padx, nantinya pada fillrect untuk menggambar Pad kita, akan seperti ini. Lalu kita buat kelas Pad1() dan Pad2() Sehingga ketika kita tambah code berikut di game loop

Maka sudah dipastikan pad kita posisinya akan selalu bertambah, yang artinya akan bergerak ke kanan terus. Sekarang mari kita coba mix dengan user inputnya. Jika kita tekan kanan, maka pad akan bergerak ke arah kanan, dan jika kita tekan kiri, maka pad akan bergerak ke arah kiri. Pertama tama, deklarasikan dahulu kecepatan dari pad, Lalu kita buat kelas gerakpad(), Ketika kita tekan kiri, maka padxkita akan dikurangi dengan padxvel, sehingga lokasi dari pad akan berubah. Begitu pula sebaliknya ketika kita tekan kanan. Nah lho, ketika pad kita sudah mencapai ujung, ternyata pad akan terus berjalan. Bahkan terus hingga tak hingga. Untuk mencegah hal itu, maka akan kita buat pengecekan ketika pad sudah mencapai ujung. Sehingga pad akan berhenti. Kita akan simpan kode berikut di dalam fungsi gerakpad(),

Yup, selesailah untuk pad kita. Untuk pengembangan pad musuh, nanti kita akan tambahkan simple AI di dalamnya. 2. Bola Tugas sebuah bola adalah bergerak secara acak, memiliki efek pantulan, dan ketika melewati daerah lawan, maka akan menambah skor kita. Berarti, posisi X dan Y dari bola kita harus bersifat dinamis. Pertama tama, deklarasikan posisi X dan Y dari bola, kita buat variable global bolax dan bolay. Lalu buat kelas Bola() yang isinya definisi warna dan fillarc() Lalu kita buat kelas agar si Bola bergerak. Terlebih dahulu definisikan bolaxvel dan bolayvel untuk menentukan arah dan kecepatan bolanya.

Buat kelas gerakbola() Tadi kita sudah menetapkan bolax += bolaxvel dan bolay -= bolayvel, sehingga bola akan bergerak sesuai dengan bolaxvel dan bolayvel. Kode di atas juga telah menangani ketika bola menabrak dinding, jika bola > getwidth (nabrak ke batas kanan) atau bola < 0 (nabrak batas kiri) maka bolaxvel *=-1, dengan kata lain bola akan berubah geraknya ke arah yang berlawanan. Lalu mari kita buat pantulan terhadap Pad kita, buat kelas baru checkcollision(), Statement IF di atas berguna untuk mengecek apakah bola memasuki daerah Pad kita atau tidak, jika YA maka collide = true. Lalu kita taruh sedikit sintax dibawah ke dalam fungsi gerakbola().

Jika collide tadi bernilai true, maka bolayvel akan dikalikan dengan -1, sehingga bola pun akan memantul. Nah setelah membuat pad kita bergerak dan bola kita memantul kesana kemari, saatnya kita membuat Pad AI. Ya ini hanya simple AI, dimana pad ini akan bergerak mengikuti arah dari bola. Dan kita juga akan mempersempit jarak pandang dari AI, agar permainan tidak dikuasai oleh AI terus :D. Ingat pad yang terletak di atas? Nah itu adalah pad AI kita. Pertama tama, mari kita deklarasikan kebutuhan variable kita. Sudah jelas dilihat dari nama variable nya. padaivel berguna untuk mendefinisikan kecepatan dari pad AI kita. Kita bisa menambahkan atau menurunkan kecepatannya sesuka kita. Lalu kita buat fungsi gerakai() Fungsi IF pertama, mengecek apakah posisi bolax < pad2x1 DAN bolay < getheight() getwidth()? Jika YA, maka pad2x1 -= padaivel, yang artinya jika bolax (posisi X bola) < koordinat kiri atas pad AI (pad2x1, pad2y1), (pad2x2, pad2y2) DAN bolay (posisi Y bola) < getheight (mis. 320) getwidth (mis. 240) dengan kata lain akan mengecek apakah bolay berada dalam jarak pandang AI (320 240 = 80), jika YA

maka pad akan bergerak ke kiri sesuai dengan kecepatannya. Begitu pula sebaliknya dengan IF dibawahnya. Pada IF-ELSE IF berikutnya, memiliki fungsi yang sama dengan IF yang ada pada gerakpad(), yaitu untuk mengecek apakah Pad sudah berada di ujung atau tidak. Meskipun sekarang pad sudah bisa bergerak, tapi bolanya tetap belum bisa mantul ketika menyentuh pad AI. Kita perlu tambahkan kode berikut di fungsi checkcollision(), Intinya sama dengan pengecekan collision pada pad kita. Nah beres sudah game Pong ini, tentu saja akan ada tantangan untuk kalian >:) Tantangan di hari kedua. Tambahkan fitur fitur ini: - Skor, ketika ada yang mencapai nilai 10, maka game end, restart dari permulaan game. - Peningkatan level permainan, tambahkan kecepatan bola setelah bola menyentuh pad kita 3x dan kelipatannya.