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..
Lalu ini padnya..
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
1 komentar:
mas saya mahasiswa TI smester2, saya lg cari tempat magang bwt ngisi liburan saya,, kira2 mas bsa bantu ga?? coz sya liat d blog, mas pernah pny pengalaman magang..
email saya : ryan.syah98@yahoo.com
mhon bantuannya ya..
terima kasih.
Posting Komentar