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:
min, method main nya mana??
itu sudah ada semua mas,tidak dicopy saja,sesuai dengan nama-nama filenya...
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.
Posting Komentar