Kamis, 19 Februari 2009

GAME KEEMPAT

Game ini yaitu game yang hanya mengambil makanan hewan trus diberikan pada hewan yang sesuai dengan makanannya....
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() return 1;
}
if(sp.getY()>GARIS_PERTAMA&&sp.getY() return 2;
}
if(sp.getY()>GARIS_KEDUA&&sp.getY() return 3;
}

if(sp.getY()>GARIS_KETIGA&&sp.getY() return 4;
}
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