Translate


Breaking News

Tokoh wayang

games

Sabtu, 12 Juni 2010

Animasi sederhana dengan Netbean J2ME

Untuk membuat animasi pada netbean J2ME coba anda copy-paste code dibawah ini nama file sesuai nama dari setiap codenya. Animasi ini menceritakan tentang motor yang bergerak mendahului mobil ambulan begitu seterusnya sampai program dihentikan.hehe...
1.code yang pertama untuk menbuat canvasnya:
AnimasiBackgroundCanvas.java
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;

public class AnimasiBackgroundCanvas extends GameCanvas implements Runnable{

private boolean gerak,temp;
private long delay =2;
private int width= getWidth();
private int height= getHeight();
int scnX=0, scnY=20;
private int layer =130;
private Image gambarBackground, ambulance,motor;
private Sprite backgroundSprite, spriteAmbulance, spriteMotor;
private LayerManager layerManager;

public AnimasiBackgroundCanvas() throws Exception
{

super(true);
gambarBackground = Image.createImage("/background.png");
motor=Image.createImage("/motorcycle2.png");
ambulance = Image.createImage("/ambulance.png");
backgroundSprite = new Sprite(gambarBackground);
spriteMotor=new Sprite(motor,45,44);
spriteAmbulance = new Sprite(ambulance,30,25);
layerManager = new LayerManager();
spriteMotor.setFrame(1);
spriteAmbulance.setFrame(1);

layerManager.append(spriteAmbulance);
layerManager.append(spriteMotor);
layerManager.append(backgroundSprite);
}

public void start(){
gerak = true;
Thread t = new Thread(this);
t.start();
}
public void stop()
{
gerak = false;
}
public void run()
{
Graphics g = getGraphics();
while(gerak == true)
{
if(scnX == gambarBackground.getWidth()-layer)
{
scnX=0;
}
scnX++;
if(scnY==23)
{
scnY=20;
}scnY++;
drawScreen(g);
try{
Thread.sleep(delay);
}
catch(InterruptedException ie)
{}
}
}


private void drawScreen(Graphics g){
int keyStates = getKeyStates();
g.setColor(255, 255, 255);
g.fillRect(0,0,getWidth(), getHeight());
g.setColor(0, 0, 255);
if ((keyStates == 32))
{
spriteMotor.setPosition(scnX+10, 82);
spriteAmbulance.setPosition(scnX+60,112);
layerManager.setViewWindow(scnX, 0, layer, gambarBackground.getHeight());
layerManager.paint(g, (width/2)-(layer/2), (height/2)-(layer/2));
flushGraphics();
}
else
{
spriteMotor.setPosition(scnX+10, scnY+60);
spriteAmbulance.setPosition(scnX+60,scnY+90);
layerManager.setViewWindow(scnX, 0, layer, gambarBackground.getHeight());
layerManager.paint(g, (width/2)-(layer/2), (height/2)-(layer/2));
flushGraphics();
}
}
private void drawScreen3(Graphics g){
int keyStates = getKeyStates();
g.setColor(255, 255, 255);
g.fillRect(0,0,getWidth(), getHeight());
g.setColor(0, 0, 255);
spriteMotor.setPosition(scnX+30, 120);
spriteAmbulance.setPosition(scnX-10,115);
layerManager.setViewWindow(scnX, 0, layer, gambarBackground.getHeight());
layerManager.paint(g, (width/2)-(layer/2), (height/2)-(layer/2));
flushGraphics();
}
}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2.Kemudian untuk midletnya gunakan coding dibawah ini:

MidletAnimasi.java
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class MidletAnimasi extends MIDlet implements CommandListener{
private Display display;
private Command cmExit;
private AnimasiBackgroundCanvas lmCanvas;
public MidletTUG_10D_5260()
{
display = Display.getDisplay(this);
cmExit = new Command("Keluar", Command.EXIT,1);
try
{
lmCanvas = new AnimasiBackgroundCanvas();
lmCanvas.addCommand(cmExit);
lmCanvas.setCommandListener(this);

lmCanvas.start();

}catch(Exception ex)
{
System.out.println(ex);
}
}
public void startApp() {
display.setCurrent(lmCanvas);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}

public void exit()
{
destroyApp(true);
notifyDestroyed();
}
public void commandAction(Command c, Displayable d)
{
if(c == cmExit){
exit();
}
}
}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
code yang dikopi yang ditulis miring saja kemudian yang dibold itu merupakan nama filenya. Untuk gambar dari animasi ini adalah sebagai berikut :

Gambar 1.Motor

Gambar 2.Background

Gambar 3.Mobil Ambulance

3 komentar:

MUHAMMAD YUSRAN mengatakan...

min, method main nya mana??

Davy mengatakan...

itu sudah ada semua mas,tidak dicopy saja,sesuai dengan nama-nama filenya...

Anonim mengatakan...

Mantap, tapi sepertinya ada sedikit salah tulis:
public MidletTUG_10D_5260()

seharusnya

public MidletAnimasi()

minta kode sumber yang lainnya boleh gak? yg ada GameCanvas nya, berguna banget buat belajar.

Designed By Blogger Templates