Kamis, 19 Februari 2009

GAME KELIMA

Game ini saya beri judul prau buring....game ini hanya menabrak jawaban rumus luas bangun datar ,....tujuan game ini untuk menghafal rumus luas bidang bangun datar...
game ini ditujukan kepada anak SD kelas 3,4,5....semoga dengan game ini anak akan semakin mengahafal rumus-rumus....
berikut scrip game Nya

Untuk game Nya...


import java.util.Random;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
import javax.microedition.lcdui.game.Sprite;

/**
*
* @author jeni
*/
class Game5 extends GameCanvas implements Runnable{
boolean isplay;
Image gmbPersegi,gmbPersegipanjang,gmbSegitiga,gmbBelahketupat,gmbLingkaran;
Image luasPersegi,luasPersegiPanjang,luasSegitiga,luasBelahketupat,luasLingkaran;
Image gmbOrang,gmblaut,gmbbuaya,gmbbuaya2,nilaiA,nilaiB,nilaiC;
Sprite orang,laut,buaya,buaya2;
Sprite soalTurun[]=new Sprite[5];
Sprite jawabanTurun[]=new Sprite[5];
private Random rmd = new Random();
MidletKe1 midlet;
Play play=new Play();
int kanankiri=getWidth()/2,atasbawah=getHeight()/2-40;
int gas,isor,ngelup,skor,timer=70;
private int soalAcak,jawbSalah1,jawbSalah2;
int jawabX[]=new int[3];
int jawabTemp[]=new int[3];


public Game5(MidletKe1 midlet) {
super(false);
this.midlet=midlet;
try {
play.playWavMidi("/laskarpelangi.mid");
gmblaut=Image.createImage("/laut.png");
gmbbuaya=Image.createImage("/buaya.png");
gmbbuaya2=Image.createImage("/buaya2.png");

nilaiA=Image.createImage("/sing A.png");
nilaiB=Image.createImage("/sing B.png");
nilaiC=Image.createImage("/sing C.png");

gmbPersegi=Image.createImage("/persegi.png");
gmbPersegipanjang=Image.createImage("/persegipanjang.png");
gmbSegitiga=Image.createImage("/segitiga.png");
gmbBelahketupat=Image.createImage("/belahketupat.png");
gmbLingkaran=Image.createImage("/lingkaran.png");

luasPersegi=Image.createImage("/luaspersegi.png");
luasPersegiPanjang=Image.createImage("/luaspersegipanjang.png");
luasSegitiga=Image.createImage("/luassegitiga.png");
luasBelahketupat=Image.createImage("/luasbelahketupat.png");
luasLingkaran=Image.createImage("/luaslingkaran.png");

gmbOrang=Image.createImage("/prahu.png");
orang=new Sprite(gmbOrang,50,50);
orang.setPosition(getWidth()/2, getHeight()/2);

jawabanTurun[0]=new Sprite(luasPersegi);
jawabanTurun[1]=new Sprite(luasPersegiPanjang);
jawabanTurun[2]=new Sprite(luasSegitiga);
jawabanTurun[3]=new Sprite(luasBelahketupat);
jawabanTurun[4]=new Sprite(luasLingkaran);

soalTurun[0]=new Sprite(gmbPersegi);
soalTurun[1]=new Sprite(gmbPersegipanjang);
soalTurun[2]=new Sprite(gmbSegitiga);
soalTurun[3]=new Sprite(gmbBelahketupat);
soalTurun[4]=new Sprite(gmbLingkaran);

laut=new Sprite(gmblaut,180,320);
buaya=new Sprite(gmbbuaya,45,70);
buaya2=new Sprite(gmbbuaya2,45,70);


jawabX[0]=60;
jawabX[1]=120;
jawabX[2]=180;

mengacak();
} catch (Exception e) {
}
}
public void start(){
isplay=true;
Thread t = new Thread(this);
t.start();
}

public void run() {
Graphics gr = getGraphics();
while (isplay) {
paint(gr);
menabrakJawaban();
waktu();
// selesai();
atasbawah++;
if(atasbawah>240){
atasbawah=atasbawah-3;
}
isor++;
if(isor>getHeight()){
isor=0;
}
try {
Thread.sleep(40);
} catch (Exception e) {
}
}

}
void waktu(){
ngelup--;
if(ngelup<=-10){
ngelup=0;
timer--;
}
}

public void paint(Graphics g) {
g.setColor(133, 155, 155);
g.fillRect(0, 0, getWidth(), getHeight());
laut.setPosition(58, isor-getHeight());
laut.paint(g);
laut.setPosition(58, isor);
laut.paint(g);
// laut.nextFrame();

soalTurun[soalAcak].setPosition(5, gas++);
soalTurun[soalAcak].paint(g);
jawabanTurun[soalAcak].setPosition(jawabX[jawabTemp[0]], soalTurun[soalAcak].getY());
jawabanTurun[soalAcak].paint(g);
jawabanTurun[jawbSalah1].setPosition(jawabX[jawabTemp[1]], soalTurun[soalAcak].getY());
jawabanTurun[jawbSalah1].paint(g);
jawabanTurun[jawbSalah2].setPosition(jawabX[jawabTemp[2]], soalTurun[soalAcak].getY());
jawabanTurun[jawbSalah2].paint(g);


orang.setPosition(kanankiri, atasbawah);
orang.paint(g);
orang.nextFrame();

buaya.setPosition(160,getHeight()/2+70);
buaya.paint(g);
buaya.nextFrame();
buaya2.setPosition(80,getHeight()/2+70);
buaya2.paint(g);
buaya2.nextFrame();

g.setColor(0, 0, 0);
g.drawLine(57, 0, 57, getHeight());
g.setColor(0,0,0);
g.fillRect(0, 275, getWidth(), 20);
g.setColor(255,255,255);
g.drawString("Waktu= "+timer, 5, getHeight()-15, g.TOP|g.LEFT);
g.drawString("Skor= "+skor, 70, getHeight()-15, g.TOP|g.LEFT);

if(mari==true){
isplay=false;
g.setColor(255,255,255);
g.fillRect(0, 0, getWidth(), getHeight());
g.setColor(0,0,0);
g.drawString("game over", getWidth()/2, getHeight()/2, g.TOP|g.HCENTER);
}
if(timer==0){
isplay=false;
play.stopPlaying();
if(skor<100){
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(nilaiC, getWidth() / 2, getHeight() / 2, Graphics.HCENTER | Graphics.VCENTER);
g.setColor(0,0,0);
g.drawString(""+skor,getWidth()/2, getHeight()/2+3, g.TOP|g.HCENTER);
System.out.println("C");
}
if(skor>100 && skor<140){
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(nilaiB, getWidth() / 2, getHeight() / 2, Graphics.HCENTER | Graphics.VCENTER);
g.setColor(0,0,0);
g.drawString(""+skor,getWidth()/2, getHeight()/2+3, g.TOP|g.HCENTER);
System.out.println("B");
}
if(skor>140){
g.setColor(255, 255, 255);
g.fillRect(0, 0, getWidth(), getHeight());
g.drawImage(nilaiA, getWidth() / 2, getHeight() / 2, Graphics.HCENTER | Graphics.VCENTER);
g.setColor(0,0,0);
g.drawString(""+skor,getWidth()/2, getHeight()/2+3, g.TOP|g.HCENTER);
System.out.println("A");
}
}
flushGraphics();
}
public void mengacak(){
int temp1=0 , temp2=0;
soalAcak=rmd.nextInt(5);
// jawbSalah1=rmd.nextInt(5);
do {
if(temp2==0){
temp1=rmd.nextInt(4);
if(temp1 != soalAcak){
jawbSalah1=temp1;
temp2=1;
}
}else if(temp2==1){
temp1=rmd.nextInt(4);
if(temp1 != soalAcak && temp1 != jawbSalah1){
jawbSalah2=temp1;
temp2=3;
}
}else if(temp2==3){
temp1=rmd.nextInt(3);
jawabTemp[0]=temp1;
temp2=4;
}else if(temp2==4){
temp1=rmd.nextInt(3);
if(temp1 != jawabTemp[0]){
jawabTemp[1]=temp1;
temp2=5;
}
}else if(temp2==5){
temp1=rmd.nextInt(3);
if(temp1 != jawabTemp[0] && temp1 != jawabTemp[1]){
jawabTemp[2]=temp1;
temp2=6;
}
}
} while (temp2!=6);
}

void berjalan(){
gas++;
if(gas>getHeight()){
gas=-50;
mengacak();
}
}
protected void keyPressed(int key) {
key=getKeyStates();
if((key & RIGHT_PRESSED)!=0){
kanankiri+=2;
if(kanankiri>200){
kanankiri-=2;
}
}
if((key & LEFT_PRESSED)!=0){
kanankiri-=2;
if(kanankiri<60){
kanankiri+=2;
}
}
if((key & UP_PRESSED)!=0){
atasbawah-=2;
berjalan();
if(atasbawah<10){
atasbawah+=2;
}
}
if((key & DOWN_PRESSED)!=0){
atasbawah++;
if(atasbawah>300){
atasbawah--;
}
}
}

public void menabrakJawaban(){
if(orang.collidesWith(jawabanTurun[soalAcak], true)){
skor+=10;
gas=-50;
mengacak();
System.out.println("benar");
}
if(orang.collidesWith(jawabanTurun[jawbSalah1], true)){
skor-=5;
gas=-50;
mengacak();
System.out.println("salah");
}
if(orang.collidesWith(jawabanTurun[jawbSalah2], true)){
skor-=5;
gas=-50;
mengacak();
System.out.println("salah");
}
if(orang.collidesWith(buaya, true)){
play.stopPlaying();
selesai();
System.out.println("game over");
}
if(orang.collidesWith(buaya2, true)){
play.stopPlaying();
selesai();
System.out.println("game over");
}
}
boolean mari=false;
void selesai(){
mari =true;
}
public void mati(){
isplay = false;
play.stopPlaying();
}

}

Tidak ada komentar:

Posting Komentar