www.pudn.com > 20061029005.rar > GameMIDlet.java


// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov. 
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html 
// Decompiler options: packimports(3) fieldsfirst ansi  
 
package org.cesar.inmotion.sea; 
 
import javax.microedition.lcdui.*; 
import javax.microedition.midlet.MIDlet; 
import org.cesar.inmotion.util.AbstractMIDlet; 
import org.cesar.inmotion.util.ApplicationController; 
 
// Referenced classes of package org.cesar.inmotion.sea: 
//            GameCanvas, GameController, Constants, SeaPersistence 
 
public class GameMIDlet extends AbstractMIDlet 
{ 
    class PresentationMenu extends Canvas 
        implements CommandListener 
    { 
 
        private byte index; 
        private byte lastIndex; 
 
        protected void showNotify() 
        { 
        } 
 
        public void paint(Graphics g) 
        { 
            g.setColor(255, 255, 255); 
            g.fillRect(0, 0, g.getClipWidth(), g.getClipHeight()); 
            short word0 = (short)(g.getClipWidth() / 2 - Constants.splashImg.getWidth() / 2); 
            short word1 = (short)(g.getClipHeight() / 2 - Constants.splashImg.getHeight() / 2); 
            g.drawImage(Constants.splashImg, word0, word1, 20); 
            g.drawImage(Constants.img_arrow, word0 + 74, word1 + 26 + 12 * index, 20); 
        } 
 
        public void keyPressed(int i) 
        { 
            int j = getGameAction(i); 
            switch(j) 
            { 
            case 6: // '\006' 
                index = index == 2 ? index : ++index; 
                break; 
 
            case 1: // '\001' 
                index = index == 0 ? index : --index; 
                break; 
            } 
            repaint(); 
            serviceRepaints(); 
        } 
 
        public void commandAction(Command command, Displayable displayable) 
        { 
            ApplicationController applicationcontroller = ApplicationController.getInstance(AbstractMIDlet.getAppClassName()); 
            if(command == Constants.okCommand) 
                applicationcontroller.processAction(index); 
            else 
            if(command == Constants.exitCommand) 
            { 
                destroyApp(false); 
                notifyDestroyed(); 
            } 
        } 
 
        public PresentationMenu() 
        { 
            addCommand(Constants.okCommand); 
            addCommand(Constants.exitCommand); 
            setCommandListener(this); 
        } 
    } 
 
 
    private static final String FILE_PATH = "/org/cesar/inmotion/sea/res/splash.png"; 
    private static final String CONTROLLER_FILE_PATH = "org.cesar.inmotion.sea.GameController"; 
 
    public GameMIDlet() 
    { 
        setDisplay(Display.getDisplay(this)); 
    } 
 
    public void startApp() 
    { 
        PresentationMenu presentationmenu = new PresentationMenu(); 
        AbstractMIDlet.setAppClassName("org.cesar.inmotion.sea.GameController"); 
        ApplicationController applicationcontroller = ApplicationController.getInstance(AbstractMIDlet.getAppClassName()); 
        GameCanvas gamecanvas = new GameCanvas(); 
        ((GameController)applicationcontroller).setGameCanvas(gamecanvas); 
        Form form = new Form(Constants.GAME_TITLE); 
        form.append(Constants.exitGameMessage); 
        form.addCommand(Constants.noCommand); 
        form.addCommand(Constants.yesCommand); 
        form.setCommandListener(gamecanvas); 
        Form form1 = new Form(Constants.BEST_SCORE_STR); 
        form1.addCommand(Constants.emptyCommand); 
        form1.addCommand(Constants.backCommand); 
        form1.setCommandListener(gamecanvas); 
        Form form2 = new Form(Constants.CONGRATULATIONS_STR); 
        form2.addCommand(Constants.okCommand); 
        form2.addCommand(Constants.emptyCommand); 
        form2.append(new TextField(Constants.NAMES_STR, "", 3, 0)); 
        form2.setCommandListener(gamecanvas); 
        applicationcontroller.addScreen(4, presentationmenu); 
        applicationcontroller.addScreen(1, gamecanvas); 
        applicationcontroller.addScreen(2, form); 
        applicationcontroller.addScreen(5, form1); 
        applicationcontroller.addScreen(6, form2); 
        applicationcontroller.changeScreen(4); 
        SeaPersistence.getInstance().load(); 
    } 
 
    public void pauseApp() 
    { 
    } 
 
    public void destroyApp(boolean flag) 
    { 
        SeaPersistence.getInstance().save(); 
    } 
}