membuat game hp

Friday, March 26th, 2010

Pada penulisan kali ini kita menggunkan Java Netbeans 6.0 yang sudah memiliki include mobility pack. dalam java mobility pack sudah disediakan mobile game builder tools yang memudahkan kita untuk pembuatan game ini. Mobile game buildertools  sendiri terbagi atas  :

1. Scene

scene adalah area permainan yang didalamnya merupakan gabungan dari tiled layer dan spirte. Hasil scene yang dibuat menghasilkan source updateLayerManagerForNamaScene(LayerManager lm)


2. tiled layer

tiled layer adalah suatu perangkat atau environment pada permainan. Contohnya hutan terdiri dari semak dan pohon. Semak dan pohon itu yang disebut tiled layer.

3. Sprite

Sprite adalah karakter pada permainan.

selanjutnya load scene, tiled layer dan sprite yang telah dubuat kedalam class yang extend ke GameCanvas.

misalkan kita buat sprite atau actor seperti laba-laba, tambahkan code berikut dalam methode init()

this.spriteLaba = gameDesign.getLaba();
//define the reference in the midle of sprites frame so that transformations work well
this.spriteLaba.defineReferencePixel(8, 8);
this.spriteLabaAnimator = new SpriteAnimationTask(this.spriteLaba, true);

this.spriteLabaAnimator.setMoving(true);
this.timer.scheduleAtFixedRate(this.spriteLabaAnimator, 0, gameDesign.labaBawahSeqDelay);
this.spriteLabaRandomMovement = new SpriteRandomMovement(this, spriteLaba);
this.spriteLabaRandomMovement.setSequences(
gameDesign.labaBawahSeq, Sprite.TRANS_NONE,
gameDesign.labaBawahSeq, Sprite.TRANS_ROT180,
gameDesign.labaKananSeq, Sprite.TRANS_ROT180,
gameDesign.labaKananSeq, Sprite.TRANS_NONE
);
(new Thread(spriteLabaRandomMovement)).start();

tambahkan pula variable seperti berikut :

private Sprite spriteLaba;
private SpriteAnimationTask spriteLabaAnimator;
private SpriteRandomMovement spriteLabaRandomMovement;

public class SpriteRandomMovement implements Runnable {

private static final int SPEED = 3;
private runGame canvas;
private Sprite sprite;
private byte previousDirection = GameCanvas.DOWN;
private byte direction = GameCanvas.DOWN;
private boolean interrupted;
private int[] downSeq;
private int downTrans;
private int[] upSeq;
private int upTrans;
private int[] leftSeq;
private int leftTrans;
private int[] rightSeq;
private int rightTrans;

public SpriteRandomMovement(runGame canvas, Sprite sprite) {
this.canvas = canvas;
this.sprite = sprite;
}

public void setSequences(int[] downSeq, int downTrans, int[] upSeq, int upTrans, int[] leftSeq, int leftTrans, int[] rightSeq, int rightTrans) {
this.downSeq = downSeq;
this.downTrans = downTrans;
this.upSeq = upSeq;
this.upTrans = upTrans;
this.leftSeq = leftSeq;
this.leftTrans = leftTrans;
this.rightSeq = rightSeq;
this.rightTrans = rightTrans;
}

public void stop() {
this.interrupted = true;
}

public void run() {
while (!this.interrupted) {
if (this.direction == GameCanvas.DOWN) {
if (this.previousDirection != this.direction) {
this.sprite.setFrameSequence(this.downSeq);
this.sprite.setTransform(this.downTrans);
this.previousDirection = this.direction;
}
this.sprite.move(0, SPEED);
if (this.canvas.spriteCollides(this.sprite)) {
this.sprite.move(0, -SPEED);
this.direction = GameCanvas.LEFT;
continue;
}
} else if (this.direction == GameCanvas.UP) {
if (this.previousDirection != this.direction) {
this.sprite.setFrameSequence(this.upSeq);
this.sprite.setTransform(this.upTrans);
this.previousDirection = this.direction;
}
this.sprite.move(0, -SPEED);
if (this.canvas.spriteCollides(this.sprite)) {
this.sprite.move(0, SPEED);
this.direction = GameCanvas.RIGHT;
continue;
}
} else if (this.direction == GameCanvas.LEFT) {
if (this.previousDirection != this.direction) {
this.sprite.setFrameSequence(this.leftSeq);
this.sprite.setTransform(this.leftTrans);
this.previousDirection = this.direction;
}
this.sprite.move(-SPEED, 0);
if (this.canvas.spriteCollides(this.sprite)) {
this.sprite.move(SPEED, 0);
this.direction = GameCanvas.UP;
continue;
}
} else if (this.direction == GameCanvas.RIGHT) {
if (this.previousDirection != this.direction) {
this.sprite.setFrameSequence(this.rightSeq);
this.sprite.setTransform(this.rightTrans);
this.previousDirection = this.direction;
}
this.sprite.move(SPEED, 0);
if (this.canvas.spriteCollides(this.sprite)) {
this.sprite.move(-SPEED, 0);
this.direction = GameCanvas.DOWN;
continue;
}
}
try {
Thread.sleep(300);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
}

untuk memperjelas dapat dilihat pada video di bawah ini :

http://www.youtube.com/watch?v=g2fmSq5vgi0

Sumber :

http://amangonar.blogspot.com/2009/12/cara-membuat-game-di-netbeans.html

Leave a comment