Mobile Game Developer War 4: Online Camp
Running Game
Game Template
Online Camp MGDW4
Mobile Game Developer War 4: Online Camp
Gameplay• Game side-scrolling seperti Sexy Witch atau Urban
Fatburner, dengan karakter yang terus bergerak ke kanan.
Sexy witch: http://youtu.be/UXpwvrvNBUkUrban Fatburner: http://youtu.be/0C1feRYQtm8
Mobile Game Developer War 4: Online Camp
Contoh game setipeElventales – Chase Burger
http://youtu.be/8wnLPjUDE5gPig Rider – Tinker Games
http://youtu.be/E6QZOi_pcZQ
Mobile Game Developer War 4: Online Camp
Dengan Game Template ini kamu bisa:
• Melihat struktur dasar game mobile• Melihat implementasi beberapa game logic
dari sebuah running game• Mengembangkan template ini menjadi game
lain:– Menambahkan jurang dan lantai dengan berbagai
ketinggian: Urban Fatburner– Membuat karakter terbang dan bisa menembak:
Sexy Witch– Dan lain-lain
Mobile Game Developer War 4: Online Camp
Fitur yang diimplementasi• Background yang berulang• Sprite beranimasi• Logic untuk karakter melompat
Mobile Game Developer War 4: Online Camp
PENJELASAN FITUR
Mobile Game Developer War 4: Online Camp
Implementasi Background Berulangvoid initImage(){ try { bgGedung = Image.createImage("/bg1.png"); runImg = Image.createImage("/runmon.png"); } catch (IOException e) { e.printStackTrace(); } }
void bg(){ g.setColor(134, 222, 254); g.fillRect(0, 0, getWidth(), getHeight()); g.drawImage(bgGedung, posXimg1, height,
Graphics.LEFT | Graphics.BOTTOM); g.drawImage(bgGedung, posXimg2, height,
Graphics.LEFT | Graphics.BOTTOM); g.drawImage(bgGedung, posXimg3, height,
Graphics.LEFT | Graphics.BOTTOM); posXimg1-=3; posXimg2-=3; posXimg3-=3; if (posXimg1 < -width) { posXimg1 = width; } if (posXimg2 < -width) { posXimg2 = width; } if (posXimg3 < -width) { posXimg3 = width; } }
Untuk membuat gambar yang terus menerus berulang, kita dapat menggunakan variable yang sama yaitu bgGedung, tapi kita draw di tempat yang berbeda.
Pada tulisan yg diberi tanda kuning, digambar terlebih dahulu 3 gambar gedung. Dua gedung sisanya tersembunyi di samping kanan layar.Lalu posXimg1, 2, dan 3 akan dikurangi 3 setiap loopnya.Jika posXimg sudah melewati kiri layar maka image akan dipindahkan ke kanan layar.
Mobile Game Developer War 4: Online Camp
//sprite Image runImg; Sprite spRun; int[] seqRun = new int[] {0,0,1,1,2,2,3,3, 4,4,5,5,6,6,7,7}; int cX, cY;
Animated Sprite
void initChar(){ spRun = new Sprite(runImg, 52, 40); spRun.setFrameSequence(seqRun); cX = width/2; cY = height-runImg.getHeight(); }
Sprite adalah objek untuk menyimpan gambar dengan banyak frame
52 dan 40 adalah ukuran setiap frame animasi pada sprite
Kita bisa membuat urutan animasi dengan membuat array berisi index frame animasinya
setFrameSequence digunakan untuk menyimpan urutan animasi
Mobile Game Developer War 4: Online Camp
Animated Sprite - 2
void drawChar(){ spRun.setPosition(cX, cY); if (!jumping && !falling) { spRun.nextFrame(); }else spRun.setFrame(0); spRun.paint(g); }
Untuk menggambar Sprite tidak menggunakan drawImage, tapi menggunakan Sprite.Paint
nextFrame() akan merubah frame yang ditampilkan menjadi frame berikutnya di urutan yang sudah kita buat
Khusus saat kondisi jumping atau falling, kita menampilkan frame pertama, agar karakter tidak berlari di udara.
Mobile Game Developer War 4: Online Camp
Implementasi fitur lompat - 1
void gameInput(){ int keystate = getKeyStates(); if (((keystate & LEFT_PRESSED) != 0)) { cX -= 3; } if (((keystate & RIGHT_PRESSED) != 0)) { cX += 3; } if ((keystate & FIRE_PRESSED) != 0) { if (!jumping && !falling) { jumping = true; } } }
Pada gameInput(), ketika ditekan tombol FIRE, maka char akan melompat.
Untuk menyimpan informasi karakter sedang melompat atau turun, kita buat boolean jumping dan falling.
Mobile Game Developer War 4: Online Camp
void jump(){ if (jumping) { tinggi--; cY -= tinggi; if (tinggi < 0) { jumping = false; falling = true; } } if (falling) { tinggi++; cY += tinggi; if (tinggi > 15) { falling = false; cY = height-runImg.getHeight(); } } }
Implementasi fitur lompat - 2• Ketika jumping bernilai true,
maka tinggi akan dikurangi dan cY akan dikurangi tinggi.
• Jika tinggi sudah bernilai 0 maka jumping akan false dan falling akan bernilai true.
• Ketika falling bernilai true, maka tinggi akan bertambah dan cY akan ditambah tinggi.
• Jika tinggi mencapai > 15 maka falling akan bernilai false (mendarat)
Mobile Game Developer War 4: Online Camp
PENGEMBANGAN
Mobile Game Developer War 4: Online Camp
• Objek penghalang– Kamu bisa menyimpan variabel untuk
menyimpan posisi objek penghalang (yang bergerak dengan kecepatan yang sama dengan latar belakang)
– Periksa saat posisi objek sama dengan posisi karakter, maka terjadi sesuatu (misalnya mendapat poin atau semacamnya)
Mobile Game Developer War 4: Online Camp
• Jurang– Buat beberapa variabel untuk menyimpan
awal dan akhir setiap jurang– Jika posisi pemain berada di tanah saat
berada di antara awal dan akhir jurang, maka pemain akan ‘jatuh’
Mobile Game Developer War 4: Online Camp
• Masih banyak lagi yang bisa kamu buat dengan mengembangkan template ini.
• Untuk diskusi bisa dilakukan di thread game template Running Game di http://bit.ly/mgdw4forum
Top Related