Selasa, 09 Desember 2008

GAME PERTAMA

Game pertama saya yaitu Game Flaying.Game ini saya buat untuk tingkat SD kelas 1 dan 2.tujuan game ini adalah untuk merangsang otak anak dalam melihat angka.
Cara kerja game ini kita menunggu angka dari atas ke bawah,jika angka tersebut sudah mengenai player kita,maka kita tekan angka yang sesuai dengan gambar angka tersebut.
Untuk penilaian skor. Jika terlambat menekan tombol sesuai dengan gambar angka, maka nilai skor -10. Dan jika menekan tombol sesuai dengan gambar angka,maka akan menambah nilai skor 5.Untuk keberhasilan dalam game ini diberikan waktu 33 detik untuk mendapat nilai skor 250.Jika anda kurang memenuhi nilai skor tersebut maka misi gagal.
Demikian untuk game pertama dari saya,jika dalam game pertama saya kurang sempurna,saya minta saran dan kritiknya.


-----------------------------------------------------------------------------------------------------------------------------
midletNya:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

import java.util.Timer;
import java.util.TimerTask;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
* @author jeni
*/
public class MidletQ extends MIDlet implements CommandListener{
private Display display;
private GamePertama gameAwal;
private Form form;
private List list;
private Timer timer;
private TimerTask timerTask;
Splash sp;
Command okCommand = new Command("ok",Command.OK,0);
Command backCommand= new Command("back",Command.BACK,1);

// private Object play;


public void midletQ(){
list = new List("PLAY NUMBER",List.IMPLICIT);
list.append("mulai",null);
list.append("petunjuk", null);
list.append("keluar", null);
list.addCommand(okCommand);
list.setCommandListener(this);
display.setCurrent(list);
}
public void startApp() {
display = Display.getDisplay(this);
sp=new Splash(this);
display.setCurrent(sp);
}


public Display getDisplay(){
return Display.getDisplay(this);
}

public void pauseApp() {
}

public void destroyApp(boolean unconditional) {
}
void startTimer(){
timer= new Timer();
timerTask = new TimerTask(){
public void run(){
midletQ();
}
};
timer.schedule(timerTask, 2000);
}
void stopTimer() {
timer.cancel();
timerTask.cancel();

}

public void exit(){
destroyApp(true);
notifyDestroyed();
}
public void showForm(){
form = new Form("Petunjuk");
form.append("1.tombol 1 untuk gambar 1\n" +
"2.tombol 2 untuk gambar 2\n" +
"3.Tombol 3 untuk gambar 3\n" +
"\n" +
"\n" +
" jika skor anda kurang dari 250 maka anda kalah.anda hanya menekan keyPress yang sesuai dengan gambar");
form.addCommand(backCommand);
form.setCommandListener(this);
display.setCurrent(form);
}

public void commandAction(Command c, Displayable d) {
if(c==okCommand){
if(list.getSelectedIndex()==0){
gameAwal=new GamePertama(this);

display.setCurrent(gameAwal);
gameAwal.start();
}
if(list.getSelectedIndex()==1){
showForm();
}
if(list.getSelectedIndex()==2){
exit();
}
}
if(c==backCommand){
midletQ();
}
}

}
-----------------------------------------------------------------------------------------------------------------------------
splash:


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;

/**
*play.plaFile(/dmasiv.mid)
* @author jeni
*/
class Splash extends Canvas{
private MidletQ midlet1;
int w,h;
Image img,gambar;

Splash(MidletQ midlet) {
w=getWidth();
h=getHeight();
midlet1=midlet;
try{

img=Image.createImage("/gambarAngka.png");
gambar=Image.createImage("/play angka.png");
}
catch(Exception ex){
System.out.println("gatel");
}
}

protected void paint(Graphics g) {
// g.setColor(0,0,0);
// g.drawRect(0, 0, getWidth(), getHeight());
g.drawImage(img, getWidth()/2, getHeight()/2, g.HCENTER|g.VCENTER);
g.drawImage(gambar, getWidth()/2, getHeight()/2, g.HCENTER|g.VCENTER);

}
protected void hideNotify(){
midlet1.stopTimer();
}
protected void showNotify(){
midlet1.startTimer();
}

}
-----------------------------------------------------------------------------------------------------------------------------
musikNya:


import javax.microedition.media.Manager;
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 playerUpdate(Player arg0, String arg1, Object arg2) {

}
}




-----------------------------------------------------------------------------------------------------------------------------
ini adalah scripNya


import java.util.Random;
import java.util.Timer;
import javax.microedition.lcdui.Command;

import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Displayable;
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 GamePertama extends GameCanvas implements Runnable, CommandListener{
boolean isPlay;
private Image imgPlayer,backGround,gmbrAngk,menang;
private Sprite spritePlayer,gmbMlaku;
private int skor1;
private Sprite [] angka = new Sprite[3];
private int x;
private Random rmd = new Random();
public Command cmd = new Command("exit", Command.EXIT, 1);
public MidletQ midlet;
int timer=30;
int ngelup;
Splash splas;
Play play = new Play();

public GamePertama(MidletQ midlet){
super(false);
this.midlet=midlet;
setCommandListener(this);

try{
System.out.print("sini");

play.playWavMidi("/st12.midi");

imgPlayer= Image.createImage("/HERO copy.png");
backGround=Image.createImage("/ahgabsswty.jpg");
gmbrAngk=Image.createImage("/gambar kalah.jpg");
menang=Image.createImage("/gambar menang.jpg");

spritePlayer = new Sprite(imgPlayer);
spritePlayer.setPosition(getWidth()/2-(spritePlayer.getWidth()/2), getHeight()/2+70);

Image angka1=Image.createImage("/angka1 copy.png");
Image angka2=Image.createImage("/angka2 copy.png");
Image angka3=Image.createImage("/angka3 copy.png");

angka[0]=new Sprite(angka1);
angka[1]=new Sprite(angka2);
angka[2]=new Sprite(angka3);

angka[0].setPosition(getWidth()/2-(angka[0].getWidth()/2), 0);
angka[1].setPosition(getWidth()/2-(angka[1].getWidth()/2),0);
angka[2].setPosition(getWidth()/2-(angka[2].getWidth()/2), 0);

x=rmd.nextInt(3);
System.out.print(rmd.nextInt(3));



addCommand(cmd);


}catch(Exception ex){
System.out.println("erorr");
}
}



public void run() {
Graphics gr = getGraphics();
while(isPlay){
tampilGambar(gr);
untukWaktu();
//input();
berjalan();
try{
Thread.sleep(20);
}catch(Exception ex){
System.out.println("eror sleep");
}

}
}
public void untukWaktu(){
ngelup--;
if(ngelup<=-20){ ngelup=0; timer--; } } public void tampilGambar(Graphics g){ g.drawImage(backGround,getWidth()/2,getHeight()/2,Graphics.HCENTER|Graphics.VCENTER ); g.setColor(8,246,232); g.drawString("timer= "+timer, getWidth()-10, 10, Graphics.TOP|Graphics.RIGHT); g.drawString("sekor= "+skor1, 10, 10, Graphics.TOP|Graphics.LEFT); angka[x].paint(g); spritePlayer.paint(g); if(timer==0){ if(skor1<250){ timer= "+timer, getWidth()-10, 10, Graphics.TOP|Graphics.RIGHT); g.drawString(" sekor=" " isplay="false;">250){
g.drawImage(menang, getWidth(), 0, g.RIGHT|g.TOP);
g.setColor(255,255,255);
g.drawString("timer= "+timer, getWidth()-10, 10, Graphics.TOP|Graphics.RIGHT);
g.drawString("sekor= "+skor1, 10, 10, Graphics.TOP|Graphics.LEFT);
isPlay=false;
}
}
flushGraphics();
}


public void start() {
Thread t = new Thread(this);
isPlay=true;
t.start();

}
boolean isDisable = false;


protected void keyReleased(int arg0) {
isDisable = false;
}


public void keyPressed(int kd){
if(isDisable==false){
if(angka[x].collidesWith(spritePlayer, true)){
if(kd==KEY_NUM1 && x==0){
x=rmd.nextInt(3);
angka[x].setPosition(getWidth()/2-(angka[0].getWidth()/2), 0);
skor1+=5;

}
if(kd==KEY_NUM2 && x==1){
x=rmd.nextInt(3);
angka[x].setPosition(getWidth()/2-(angka[0].getWidth()/2), 0);
skor1+=5;
}
if(kd==KEY_NUM3 && x==2){
x=rmd.nextInt(3);
angka[x].setPosition(getWidth()/2-(angka[0].getWidth()/2), 0);
skor1+=5;
}
}
}

isDisable = true;
}

public void berjalan(){
angka[x].move(0, 20);
if(angka[x].getY()>=getHeight()){
skor1 -=10;
x=rmd.nextInt(3);
angka[x].setPosition(getWidth()/2-(angka[0].getWidth()/2), 0);
}

}

public void commandAction(Command c, Displayable d) {
if(c==cmd){
midlet.midletQ();
}
}
}