www.pudn.com > 20061029005.rar > GameController.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 java.io.IOException; 
import javax.microedition.lcdui.*; 
import org.cesar.inmotion.util.AbstractMIDlet; 
import org.cesar.inmotion.util.ApplicationController; 
 
// Referenced classes of package org.cesar.inmotion.sea: 
//            GameCanvas, Constants, SeaPersistence 
 
public class GameController extends ApplicationController 
    implements Runnable 
{ 
 
    public static final int GAME_CANVAS = 1; 
    public static final int EXIT_DIALOG = 2; 
    public static final int GAMEOVER_SCREEN = 3; 
    public static final int PRESENTATION_MENU = 4; 
    public static final int HI_SCORE = 5; 
    public static final int CONGRATULATIONS = 6; 
    private Displayable presentationScreen; 
    private GameCanvas gameCanvas; 
    private int refreshRate; 
 
    public GameController() 
    { 
    } 
 
    public void setFps(int i) 
    { 
        refreshRate = 1000 / i; 
    } 
 
    public void paintGameOver() 
    { 
        ApplicationController.getInstance(AbstractMIDlet.getAppClassName()).changeScreen(3); 
    } 
 
    public void run() 
    { 
        if(!gameCanvas.isGameOver()) 
        { 
            if(!gameCanvas.isPaused()) 
            { 
                gameCanvas.update(); 
                gameCanvas.repaint(); 
                gameCanvas.serviceRepaints(); 
            } 
            AbstractMIDlet.getDisplay().callSerially(this); 
        } 
    } 
 
    public Displayable getPresentationScreen() 
    { 
        return presentationScreen; 
    } 
 
    public void setPresentationScreen(Displayable displayable) 
    { 
        presentationScreen = displayable; 
    } 
 
    public GameCanvas getGameCanvas() 
    { 
        return gameCanvas; 
    } 
 
    public void startAppAction() 
    { 
        ApplicationController.getInstance(AbstractMIDlet.getAppClassName()).changeScreen(-11); 
    } 
 
    public void processAction(int i) 
    { 
        switch(i) 
        { 
        case 0: // '\0' 
            gameCanvas.init(); 
            Constants.lives = 5; 
            Thread thread = new Thread(this); 
            thread.start(); 
            ApplicationController.getInstance(AbstractMIDlet.getAppClassName()).changeScreen(1); 
            break; 
 
        case 1: // '\001' 
            writeHiScore(); 
            ApplicationController.getInstance(AbstractMIDlet.getAppClassName()).changeScreen(5); 
            break; 
        } 
    } 
 
    public void paintScreen(String s, Graphics g) 
    { 
        g.setColor(0xffffff); 
        g.fillRect(g.getClipX(), g.getClipY(), g.getClipWidth(), g.getClipHeight()); 
        try 
        { 
            Image image = Image.createImage(s); 
            g.drawImage(image, 0, 0, 20); 
        } 
        catch(IOException ioexception) 
        { 
            ioexception.printStackTrace(); 
        } 
    } 
 
    public void setGameCanvas(GameCanvas gamecanvas) 
    { 
        gameCanvas = gamecanvas; 
    } 
 
    public void writeHiScore() 
    { 
        String s = ""; 
        Form form = (Form)ApplicationController.getInstance(AbstractMIDlet.getAppClassName()).getScreen(5); 
        for(int i = 0; i < SeaPersistence.getInstance().getScoreNumber(); i++) 
            s = s + SeaPersistence.getInstance().getScoreName(i) + " " + SeaPersistence.getInstance().getScoreValue(i) + "\n"; 
 
        if(form.size() != 0) 
            form.delete(0); 
        form.append(s); 
    } 
}