tujuanNya diberikan pada anak berusia Tk...
untuk memenangkan game ini waktu anda harus kurang dari 1menit...
berikut scriptNya....
Midlet..Nya
package newpackage;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
/**
* @author jeni
*/
public class Midlet1 extends MIDlet implements CommandListener {
private Splash sp;
private Display display;
private Timer timer;
private TimerTask timerTask;
private Gameke4 play;
Menu menu;
Play play1=new Play();
Form form;
Image image;
Command okCommand=new Command("Ok",Command.OK,0);
Command backCommand=new Command("Kembali",Command.BACK,1);
Command exitCommand=new Command("Keluar", Command.EXIT,1);
public void displayOverScreen(int menit, int detik){
Form form = new Form("");
form.append("Anda Menang!!!"+"\n"+"waktu anda adalah : "+menit+" menit, "+detik+" detik");
form.addCommand(backCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
public void startApp() {
display=Display.getDisplay(this);
sp=new Splash(this);
display.setCurrent(sp);
display.setCurrent(form);
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
public void menang(){
form=new Form("Selamat!!!");
TextField tf=new TextField("Masukkan Nama Anda","",20,TextField.ANY);
form.append(tf);
form.addCommand(backCommand);
form.setCommandListener(this);
display.setCurrent(form);
}
void menuPilih(int choice) {
try {
switch (choice) {
case 0:
play = new Gameke4(this);
play.start();
play.addCommand(backCommand);
play.setCommandListener(this);
display.setCurrent(play);
break;
case 1:
Alert al = new Alert("Petunjuk Permainan", "Cara permainan game ini adalah Anda harus menempatkan makanan yang sesuai dengan gambar hewan yang ada."+"\n"+"Gunakan tombol left dan right untuk mengarahkan player ke kanan dan ke kiri."+"\n"+"Gunakan Tombol up dan down untuk mengarahkan player kedepan dan belakang."+"\n"+"Dan gunakan enter untuk mengambil dan meletakkan makanan. ", image, AlertType.CONFIRMATION);
al.setTimeout(Alert.FOREVER);
display.setCurrent(al);
break;
case 2:
exit();
break;
default:
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
public void callMenu(){
display=Display.getDisplay(this);
menu=new Menu(this);
display.setCurrent(menu);
}
void startTimer(){
timer=new Timer();
timerTask=new TimerTask() {
public void run() {
callMenu();
}
};
timer.schedule(timerTask, 1000);
}
void stopTimer(){
timer.cancel();
timerTask.cancel();
}
private void exit() {
destroyApp(false);
notifyDestroyed();
}
public void commandAction(Command c, Displayable d) {
if(c==backCommand){
play1.stopPlaying();
display.setCurrent(menu);
// play.stopPlaying();
}
}
}
-----------------------------------------------------------------------------------------------------------------------------------
package newpackage;
import java.io.IOException;
import javax.microedition.lcdui.Canvas;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
/**
*
* @author jeni
*/
public class Splash extends Canvas {
private Midlet1 midletTT;
int w,h,hImg;
private Image img;
public Splash(Midlet1 midlet){
w=getWidth();
h=getHeight();
midletTT=midlet;
try{
img=Image.createImage("/image/splash1.png");
}catch(IOException ie){
}
hImg=img.getHeight();
}
protected void paint(Graphics g) {
g.setColor(255,255,255);
g.fillRect(0, 0, w, h);
g.drawImage(img, w/2, h/2, Graphics.HCENTER | Graphics.VCENTER);
}
protected void hideNotify(){
midletTT.stopTimer();
}
protected void showNotify(){
midletTT.startTimer();
}
}
-----------------------------------------------------------------------------------------------------------------------------------
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package newpackage;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Font;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
/**
*
* @author jeni
*/
public class Menu extends Canvas implements CommandListener,Runnable{
private Midlet1 midlet;
private Display display;
private Image head;
private int index;
static final Font tipe=Font.getFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM);
public Menu(Midlet1 midlet){
this.midlet=midlet;
display=Display.getDisplay(midlet);
try{
head=Image.createImage("/image/MENU.PNG");
}catch(Exception e){}
Thread t = new Thread(this);
t.start();
}
protected void paint(Graphics g) {
g.setColor(255,255,255);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(head, 0, 0, Graphics.TOP|Graphics.LEFT);
g.setColor(0,0,0);
g.fillRect((getWidth()-head.getWidth())/2,(getWidth()/8)+head.getHeight()+10, head.getWidth(), 22);
g.fillRect((getWidth()-head.getWidth())/2,(getWidth()/8)+head.getHeight()+35, head.getWidth(), 22);
g.fillRect((getWidth()-head.getWidth())/2,(getWidth()/8)+head.getHeight()+60, head.getWidth(), 22);
g.setColor(100, 100, 100);
switch(index){
case 0:
g.fillRect((getWidth()-head.getWidth())/2,(getWidth()/8)+head.getHeight()/2+10, head.getWidth(), 22);
break;
case 1:
g.fillRect((getWidth()-head.getWidth())/2,(getWidth()/8)+head.getHeight()/2+35, head.getWidth(), 22);
break;
case 2:
g.fillRect((getWidth()-head.getWidth())/2,(getWidth()/8)+head.getHeight()/2+60, head.getWidth(), 22);
break;
default:
}
g.setColor(255, 255, 255);
g.setFont(tipe);
g.drawString("Mulai Permainan",getWidth()/2, (getWidth()/8)+head.getHeight()/2+12,Graphics.TOP|Graphics.HCENTER);
g.drawString("Petunjuk Permainan",getWidth()/2, (getWidth()/8)+head.getHeight()/2+37,Graphics.TOP|Graphics.HCENTER);
// g.drawString("Petunjuk Permainan",getWidth()/2, (getWidth()/8)+head.getHeight()/2+37,Graphics.TOP|Graphics.HCENTER);
g.drawString("Keluar",getWidth()/2, (getWidth()/8)+head.getHeight()/2+63,Graphics.TOP|Graphics.HCENTER);
}
public void commandAction(Command c, Displayable d) {
}
public void run() {
while(true){
try{
Thread.sleep(100);
}catch(Exception e){}
repaint();
}
}
protected void keyPressed(int code) {
if(getGameAction(code)==Canvas.DOWN){
index++;
if(index>2)index=0;
}
if(getGameAction(code)==Canvas.UP){
index--;
if(index<0)index=2;
}
if(getGameAction(code)==Canvas.FIRE){
switch(index){
case 0:
midlet.menuPilih(0);
break;
case 1:
midlet.menuPilih(1);
break;
case 2:
midlet.menuPilih(2);
break;
default:
}
}
}
}
----------------------------------------------------------------------------------------------------------------------------------
Untuk gameNya:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package newpackage;
import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.Form;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.game.GameCanvas;
import javax.microedition.lcdui.game.Sprite;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.TextField;
//import javax.microedition.lcdui.game.LayerManager;
/**
*
* @author jeni
*/
class Gameke4 extends GameCanvas implements Runnable {
Midlet1 midlet;
boolean isBringSomething = false;
// private LayerManager lm;
private Sprite sapi, ular, ayam, ikan, rumput, tikus, padi, cacing;
private boolean jalan = false;
private Thread t;
private boolean selesai1, selesai2, aelesai3, selesai;
private Sprite orang;
// private byte lD = -1;
private int kec = 5;
private final int KIRI = 0;
private final int KANAN = 1;
private final int BAWAH = 2;
private final int ATAS = 3;
private int animasi;
private int status;
private int spritePosition[] = new int[5];
private boolean Left, Right, Up, Down, L, R, U, D;
private int xCewek, yCewek;
int jawabanYangDigondol;
Image imageCorrect;
Image imageCross;
Image menang,kalah;
boolean[] isCorrect = new boolean[5];
final int GARIS_PERTAMA = 42+10;
final int GARIS_KEDUA = 83+10;
final int GARIS_KETIGA = 123+10;
final int GARIS_KEEMPAT = 162+10;
private boolean cekDetik = true;
private int second = 20, detik = 0, menit = 0;
private boolean gameOver, cekLm;
private Form form;
private TextField tf;
Command okCommand=new Command("Ok",Command.OK,0);
private Image imgPlayer;
Play play;
Gameke4(Midlet1 midlet) throws Exception {
super(true);
this.midlet = midlet;
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
detik++;
}
}, 1000, 1000);
for(int i = 0; i < 5; i ++){
isCorrect[i] = false;
spritePosition[i] = 0;
}
xCewek = getWidth() / 2 + getWidth() / 4;
yCewek = getHeight() / 2;
try {
play=new Play();
play.playWavMidi("/newpackage/caripacarlagi.mid");
imageCross = Image.createImage("/image/cross.png");
imageCorrect = Image.createImage("/image/correct.png");
// kalah = Image.createImage("");
imgPlayer = Image.createImage("/image/016-Thief01.png");
sapi = new Sprite(Image.createImage("/image/SAPI.png"));
ular = new Sprite(Image.createImage("/image/ULAR.png"));
ayam = new Sprite(Image.createImage("/image/AYAM.png"));
ikan = new Sprite(Image.createImage("/image/IKAN.png"));
rumput = new Sprite(Image.createImage("/image/RUMPUT.PNG"), 25, 35);
tikus = new Sprite(Image.createImage("/image/TIKUS.PNG"), 25, 35);
padi = new Sprite(Image.createImage("/image/PADI.PNG"), 25, 35);
cacing = new Sprite(Image.createImage("/image/CACING.PNG"), 25, 35);
rumput.setRefPixelPosition(15,15);
tikus.setRefPixelPosition(15,15);
padi.setRefPixelPosition(15,15);
cacing.setRefPixelPosition(15,15);
orang = new Sprite(imgPlayer, 32, 48);
orang.setPosition(xCewek, yCewek);
sapi.setPosition(80, 20+5);
ular.setPosition(20, 60+5);
ayam.setPosition(90, 100+5);
ikan.setPosition(40, 140+5);
rumput.setPosition(130, 210+30);
tikus.setPosition(190, 210+30);
padi.setPosition(80, 210+30);
cacing.setPosition(20, 210+30);
// menang = Image.createImage("/image/MENANG.PNG");
//lm=new LayerManager();
//lm.append(cewek);
} catch (Exception e) {
e.printStackTrace();
}
}
public int getPositionIndex(Sprite sp){
if(sp.getY()>0&&sp.getY()
}
if(sp.getY()>GARIS_PERTAMA&&sp.getY()
}
if(sp.getY()>GARIS_KEDUA&&sp.getY()
}
if(sp.getY()>GARIS_KETIGA&&sp.getY()
}
else{
return 0;
}
}
public void cekPosisi(){
if(getPositionIndex(rumput)==1){
isCorrect[1] = true;
spritePosition [1] = getPositionIndex(rumput);
}else{
isCorrect[1] = false;
spritePosition [1] = getPositionIndex(rumput);
}
if(getPositionIndex(tikus)==2){
isCorrect[2] = true;
spritePosition [2] = getPositionIndex(tikus);
}else{
isCorrect[2] = false;
spritePosition [2] = getPositionIndex(tikus);
}
if(getPositionIndex(padi)==3){
isCorrect[3] = true;
spritePosition [3] = getPositionIndex(padi);
}else{
isCorrect[3] = false;
spritePosition [3] = getPositionIndex(padi);
}
if(getPositionIndex(cacing)==4){
isCorrect[4] = true;
spritePosition [4] = getPositionIndex(cacing);
}else{
isCorrect[4] = false;
spritePosition [4] = getPositionIndex(cacing);
}
if(spritePosition[1]==spritePosition[2] ||
spritePosition[1]==spritePosition[3] ||
spritePosition[1]==spritePosition[4]
){
isCorrect[1] = false;
}
if(spritePosition[2]==spritePosition[1] ||
spritePosition[2]==spritePosition[3] ||
spritePosition[2]==spritePosition[4]
){
isCorrect[2] = false;
}
if(spritePosition[3]==spritePosition[1] ||
spritePosition[3]==spritePosition[2] ||
spritePosition[3]==spritePosition[4]
){
isCorrect[3] = false;
}
if(spritePosition[4]==spritePosition[1] ||
spritePosition[4]==spritePosition[2] ||
spritePosition[4]==spritePosition[3]
){
isCorrect[4] = false;
}
for(int i =0 ; i < 5; i++){
System.out.println("is correct ke "+i+" = "+isCorrect[i]);
System.out.println("indeks sprite ke "+i+" = "+spritePosition[i]);
}
System.out.println(rumput.getY());
System.out.println(tikus.getY());
System.out.println(padi.getY());
System.out.println(cacing.getY());
}
private void animasiOrang(int status, int animasi) {
switch (status) {
case KIRI:
orang.setFrame(animasi + 4);
break;
case KANAN:
orang.setFrame(animasi + 8);
break;
case ATAS:
orang.setFrame(animasi + 12);
break;
case BAWAH:
orang.setFrame(animasi);
break;
default:
}
}
public void gerakinJawabanYangDigondol(){
if(isBringSomething){
switch(jawabanYangDigondol){
case 1 : rumput.setPosition(orang.getX()+20, orang.getY());
break;
case 2 : tikus.setPosition(orang.getX()+30, orang.getY());
break;
case 3 : padi.setPosition(orang.getX()+30, orang.getY());
break;
case 4 : cacing.setPosition(orang.getX()+30, orang.getY());
break;
}
}
}
public void kendali() {
int keyState = getKeyStates();
if((keyState&FIRE_PRESSED)!=0){
if(isBringSomething==false)
{
if(orang.collidesWith(rumput, true)){
isBringSomething = true;
jawabanYangDigondol = 1;
}
if(orang.collidesWith(tikus, true)){
isBringSomething = true;
jawabanYangDigondol = 2;
}
if(orang.collidesWith(padi, jalan)){
isBringSomething = true;
jawabanYangDigondol = 3;
}
if(orang.collidesWith(cacing, jalan)){
isBringSomething = true;
jawabanYangDigondol = 4;
}
}
else{
isBringSomething = false;
cekPosisi();
}
}
if (((keyState & LEFT_PRESSED) != 0)) {
//untuk animasi player
R = false;
status = KIRI;
if (!L) {
orang.move(-2, 0);
animasi++;
if (animasi > 3) {
animasi = 0;
}
animasiOrang(status, animasi);
}
gerakinJawabanYangDigondol();
}
if (((keyState & RIGHT_PRESSED) != 0)) {
L = false;
status = KANAN;
if (!R) {
orang.move(2, 0);
animasi++;
if (animasi > 3) {
animasi = 0;
}
animasiOrang(status, animasi);
}
gerakinJawabanYangDigondol();
}
if ((keyState & UP_PRESSED) != 0) {
D = false;
status = ATAS;
if (!U) {
orang.move(0, -2);
animasi++;
if (animasi > 3) {
animasi = 0;
}
animasiOrang(status, animasi);
}
gerakinJawabanYangDigondol();
}
if ((keyState & DOWN_PRESSED) != 0) {
U = false;
status = BAWAH;
if (!D) {
orang.move(0, 2);
animasi++;
if (animasi > 3) {
animasi = 0;
}
animasiOrang(status, animasi);
}
gerakinJawabanYangDigondol();
}
}
public void menggambar(Graphics g) {
g.setColor(61, 244, 42);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawLine(0,GARIS_PERTAMA, getWidth(), GARIS_PERTAMA);
g.drawLine(0,GARIS_KEDUA, getWidth(), GARIS_KEDUA);
g.drawLine(0,GARIS_KETIGA, getWidth(), GARIS_KETIGA);
g.drawLine(0,GARIS_KEEMPAT, getWidth(), GARIS_KEEMPAT);
g.setColor(0, 0, 0);
g.drawRect(10, 20, getWidth()-20, getHeight()/2+40);
g.drawRect(10+3, 20+3, getWidth()-20-6, getHeight()/2+40-6);
g.setColor(0,0,0);
g.drawString("Waktu = 0" + menit + ":" + detik, 150, 0, Graphics.TOP | Graphics.LEFT);
sapi.paint(g);
ular.paint(g);
ayam.paint(g);
ikan.paint(g);
rumput.paint(g);
tikus.paint(g);
padi.paint(g);
cacing.paint(g);
gambarStatusJawaban(g);
orang.paint(g);
if(isCorrect[1]==true && isCorrect[2]==true && isCorrect[3]==true && isCorrect[4]==true){
// selesai();
play.stopPlaying();
jalan=false;
if(menit<1){
// g.drawImage(menang, 0, 0, g.TOP|g.LEFT);
g.setColor(255,255,255);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0,0,0);
g.drawString("Waktu = 0" + menit + ":" + detik, getWidth()/2, 10, Graphics.TOP | Graphics.HCENTER);
g.drawString("SELAMAT ANDA MENANG", getWidth()/2, 30, g.TOP|g.HCENTER);
g.drawString("ANDA MENYELESAIKAN TEPAT WAKTU", getWidth()/2, 40, g.TOP|g.HCENTER);
System.out.println("menang");
}
if(menit>=1){
g.setColor(255,255,255);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0,0,0);
g.drawString("Waktu = 0" + menit + ":" + detik, getWidth()/2, 10, Graphics.TOP | Graphics.HCENTER);
g.drawString("TERIMA KASIH", getWidth()/2, 30, g.TOP|g.HCENTER);
g.drawString("WAKTU ANDA KURANG MAKSIMAL", getWidth()/2, 40, g.TOP|g.HCENTER);
g.drawString("COBALAGI", getWidth()/2, 50, g.TOP|g.HCENTER);
System.out.println("kalah");
}
System.out.println("Selesai");
}
flushGraphics();
}
public void gambarStatusJawaban(Graphics g){
if(isCorrect[1]){
g.drawImage(imageCorrect, getWidth(), GARIS_PERTAMA, g.RIGHT|g.BOTTOM);
}else{
g.drawImage(imageCross, getWidth()/2+30, GARIS_PERTAMA, g.RIGHT|g.BOTTOM);
}
if(isCorrect[2]){
g.drawImage(imageCorrect, getWidth(), GARIS_KEDUA, g.RIGHT|g.BOTTOM);
}else{
g.drawImage(imageCross, getWidth()/2-40, GARIS_KEDUA, g.RIGHT|g.BOTTOM);
}
if(isCorrect[3]){
g.drawImage(imageCorrect, getWidth(), GARIS_KETIGA, g.RIGHT|g.BOTTOM);
}else{
g.drawImage(imageCross, getWidth()/2+30, GARIS_KETIGA, g.RIGHT|g.BOTTOM);
}
if(isCorrect[4]){
g.drawImage(imageCorrect, getWidth(), GARIS_KEEMPAT, g.RIGHT|g.BOTTOM);
}else{
g.drawImage(imageCross, getWidth()/2-20, GARIS_KEEMPAT, g.RIGHT|g.BOTTOM);
}
}
void start() {
jalan = true;
t = new Thread(this);
t.start();
}
public void run() {
Graphics g = this.getGraphics();
while (jalan == true) {
waktu();
this.kendali();
this.menggambar(g);
try {
Thread.sleep(80);
} catch (Exception e) {
System.out.println("error sleep thread..");
}
}
}
public void waktu(){
if(detik>=60){
menit++;
detik = 00;
}
}
public void mari(){
jalan= false;
}
public void selesai(){
jalan=false;
// midlet.displayOverScreen(menit, detik);
}
}
--------------------------------------------------------------------------------------------------------------------------------
untuk musik....
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package newpackage;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;
import javax.microedition.media.Player;
import javax.microedition.media.PlayerListener;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import javax.microedition.media.control.VolumeControl;
/**
*
* @author jeni
*/
class Play implements PlayerListener{
// private Display display;
private static Player player;
private VolumeControl vc;
// static void playWavMidi(String file,String p)throws Exception {
void playWavMidi(String file) throws Exception {
player = Manager.createPlayer(getClass().getResourceAsStream(file),
"audio/midi");
System.out.print("sini");
player.addPlayerListener(this);
player.setLoopCount(-1);
player.prefetch();
player.realize();
vc = (VolumeControl)player.getControl("VolumeControl");
if (vc != null) {
vc.setLevel(100);
}
player.start();
}
public void stopPlaying(){
try {
player.stop();
} catch (MediaException ex) {
ex.printStackTrace();
}
}
public void playerUpdate(Player arg0, String arg1, Object arg2) {
}
}
------------------------------------------------------------------------------------------------------------------------------
Tidak ada komentar:
Posting Komentar