Rabu, 22 April 2009

Membuat game pong di hp

Akhirnya setelah sekian lama tidak “ngoprek” blog,saya luncurkan posting terbaru saya…(Lebai mode on)

Di bawah ini merupakan script java untuk membuat game mobile “kacangan”..

Tapi silahkan dicoba..

^^

//Simpan source code dibawah ini sesuai dengan nama classnya(CanvasPong.java)

import java.io.IOException;

import javax.microedition.lcdui.game.GameCanvas;

import javax.microedition.lcdui.game.Sprite;

import javax.microedition.lcdui.Graphics;

import javax.microedition.lcdui.Image;

import java.util.Random;

public class CanvasPong extends GameCanvas implements Runnable {

private int delayWaktu = 30; // delay waktu

private Image bolaImage; // gambar bola

private Sprite bolaSprite; //sprite bola

private int xAwal = getWidth() / 2; // ukuran awal x dari bola

private int yAwal = getHeight() / 2; // ukuran awal y dari bola

private final static int xImp = 3;

private final static int yImp = 1;

private int arahBola = 1; // menentukan status arah bola

private Image padImage; // gambar player pad

private Sprite padSprite; // sprite player pad

private int padX = 10; // letak x awal dari player pad

private int padY = getHeight() / 2; letak y awal dari player pad

private final static int padImp = 2;

private Sprite AISprite; // sprite AI

private int AIX = getWidth() - 10; //letak x awal dari AI pad

private int AIY = getHeight() / 2; //letak y awal dari AI pad

private final static int AIImp = 2;

private int action;

private int playerSkor = 0; //inialisasi awal skor

private int AISkor = 0;

public CanvasPong() {

super(false);

}

public void run() {

while(true) {

updateScreen(getGraphics());

try {

Thread.sleep(delayWaktu);

} catch (Exception e) {

}

}

}

public void start() {

try {

bolaImage = Image.createImage(”/bola.png”);

padImage = Image.createImage(”/pad.png”);

} catch (IOException ioex) {

System.out.println(ioex);

}

bolaSprite = new Sprite(bolaImage, 3, 3);

bolaSprite.defineReferencePixel(2, 2);

bolaSprite.setRefPixelPosition(xAwal, yAwal);

padSprite = new Sprite(padImage, 3, 20);

padSprite.defineReferencePixel(1, 10);

padSprite.setRefPixelPosition(padX, padY);

AISprite = new Sprite(padImage, 3, 20);

AISprite.defineReferencePixel(3, 10);

AISprite.setRefPixelPosition(AIX, AIY);

Thread runner = new Thread(this);

runner.start();

}

private void buatBackground(Graphics g) {

g.setColor(0×000000);

g.fillRect(0, 0, getWidth(), getHeight());

}

private void updateScreen(Graphics g) {

buatBackground(g);

buatSkorBoard(g);

gerakBola();

gerakPad();

gerakAi();

bolaSprite.setRefPixelPosition(xAwal, yAwal);

bolaSprite.paint(g);

padSprite.setRefPixelPosition(padX, padY);

padSprite.paint(g);

AISprite.setRefPixelPosition(AIX, AIY)

AISprite.paint(g);

flushGraphics();

}

private void gerakBola() {

if (arahBola == 0) { xAwal -= xImp; yAwal -= yImp;

} else if (arahBola == 1) {

xAwal += xImp; yAwal -= yImp;

} else if (arahBola == 2) {

xAwal += xImp; yAwal += yImp;

} else if (arahBola == 3) {

xAwal -= xImp; yAwal += yImp;

}

if (arahBola == 0 && xAwal <>

arahBola = 1; AISkor++;

} else if (arahBola == 0 && yAwal <>

{ arahBola = 3;

{ else if (arahBola == 1 && yAwal <>

arahBola = 2;

} else if (arahBola == 1 && xAwal > getWidth()) {

arahBola = 0;

playerSkor++;

if (delayWaktu > 5) delayWaktu–;

} else if (arahBola == 2 && yAwal > getHeight()) {

arahBola = 1;

} else if (arahBola == 2 && xAwal > getWidth()) {

arahBola = 3;

playerSkor++;

if (delayWaktu > 5) delayWaktu–;

} else if (arahBola == 3 && yAwal > getHeight()) {

arahBola = 0;

} else if (arahBola == 3 && xAwal <>

arahBola = 2;

AISkor++;

}

if (arahBola == 0 && bolaSprite.collidesWith(padSprite, false)) {

arahBola = 1;

} else if (arahBola == 3 && bolaSprite.collidesWith(padSprite, false)) {

arahBola = 2;

} else if (arahBola == 1 && bolaSprite.collidesWith(AISprite, false)) {

arahBola = 0;

} else if (arahBola == 2 && bolaSprite.collidesWith(AISprite, false)) {

arahBola = 3;

}

delayWaktu += AISkor - playerSkor;

if (delayWaktu < delaywaktu ="">

}

private void padGerak() {

int keyState = getKeyStates();

if ((keyState & UP_PRESSED) != 0 && padY > padSprite.getHeight() / 2) {

padY -= padImp;

} else if ((keyState & DOWN_PRESSED) != 0 && padY <= getHeight() - padSprite.getHeight() / 2) {

padY += padImp;

}

}

private void AIGerak() {

Random random = new Random();

action = getWidth() / 3 + Math.abs(random.nextInt() % (getWidth() / 8));

if (yAwal <> action && AIY > AISprite.getHeight() / 2) AIY -= AIImp;

if (yAwal > AIY && xAwal > action && AIY <>

}

private void buatSkorBoard(Graphics g) {

g.setColor(0xffffff);

g.drawString(playerSkor + ” - ” + AISkor, getWidth() / 2, 20, Graphics.HCENTER | Graphics.TOP);

}

}

O ya hampir lupa..

Ini adalah gambar dari bola dan padnya..

bola

bola

Lalu ini padnya..

pad

pad

Nah ni buat midletnya..

(Simpan dengan nama Pong.java)

import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;

public class Pong extends MIDlet {

private static CanvasPong canvas;

public Pong() {

canvas = new CanvasPong();

}

public void startApp() {

Display display = Display.getDisplay(this);

canvas.start();

display.setCurrent(canvas);

}

public void pauseApp() {

}

public void destroyApp(boolean unconditional) {

}

}

Maaf klu tampilan blognya masih acak”an…

=D

Selasa, 04 November 2008

Magang di Jakarta...Hho

Hahahahhahaaah….”Akhirnya q di jakarta….!!!!”
Yap…
Itu kata-kata pertama
yang saya ucapkan setelah q di jakarta.Maklum,baru pertama kali.Hhahaha.Waktu itu hari minggu (2 November 2008) Saya baru sampe di jakarta.
Hari itu
saya baru pengenalan tempat kos dan tempat magang.”Wahhh!!!Bahagianya saya bisa magang di jakarta.”
saya internet sepuasnya di kantor waktu hari minggu itu.
Malamnya
saya pulang ke tempat kos.Tidur disana.Hahahhahaha.
Namun….
Menginjak hari senin (3 November 2008),saat saya dikenalkan ke pak bos.
Rasa deg-degan mulai muncul.
Diberi pengarahan dan aturan waktu itu,saya masih g seberapa deg-degan.
Stelah beberapa jam,saya diajak ke cikarang untuk pasang access control.
Namun bukan saya yg memasangnya.Saya hanya disuruh bantu mengambil alat-alat yg dibutuhkan lalu bersihin bekas-bekas dari hasil memasang access control tadi.
Uihhh…
Dari jam 2 siang ampe jam 8 malam baru kelar tu kerja.
Sampe di tempat kos dengan rasa cape luar biasa.Belum selesai wat istirahat,saya balik lagi di tempat kerja wat ikut traine bahasa programming java.Tapi saya tidur jam 1 malam.Ga kuat.^^Hari selasa 4 November 2008

Saya hari ini di traine lagi bahasa java,lalu ditugaskan beli galon.(Hahhahaha)
Lalu setelah itu saya ditugaskan lagi buat gulung kabel sepanjang 100m!!!!!
Gila…
Dari jam 4 sore,baru kelar jam 10 malem….
Hahahhahahaha….