⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamechoose.java

📁 J2ME下开发的用于手机的推箱子游戏源代码
💻 JAVA
字号:
/*
 * GameChoose.java
 *
 * Created on 2007年12月15日, 上午1:02
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package gamepackage;

import javax.microedition.lcdui.*;
/**
 *
 * @author bense
 */
public class GameChoose extends Canvas{
    
    private GameMidlet midlet=null;
    private boolean ok;
    private boolean select;
    private boolean ok2;
    private int  select2;
    private int  index;
    private int w,h;
    private GameMain game=null;
    
    public GameChoose(GameMidlet midlet) {
        this.midlet=midlet;
        init();
    }
    public void init(){
        reset();
    }
    public void reset(){
        ok=true;
        select=false;
        ok2=false;
        select2=0;
        index=-1;
    }
    public void show(){
        midlet.play(this);
    }
    public void paint(Graphics g){        
        h=getHeight();
        w=getWidth();
        g.setColor(0xffffff);
        g.fillRect(0,0, w,h);
        g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
        g.setColor(0xFCA204);
        g.fillRect(0, 0, w,18);
        g.setColor(0x000000);
        g.drawLine(0,18,w,18); 
        g.drawString("推箱子",w/2,16, Graphics.HCENTER|Graphics.BOTTOM);
        g.drawString("8↑ 2↓ 4← 6→", w/2, 50, Graphics.HCENTER|Graphics.BOTTOM);
        g.drawString("右上按钮 退出", w/2, 70, Graphics.HCENTER|Graphics.BOTTOM);
        g.drawString("1 上一关节   3 下一关", w/2, 90, Graphics.HCENTER|Graphics.BOTTOM);
        g.setColor(0x046DFB);
        g.fillRect(0, h-22, w,22);
        g.setColor(0x000000);
        g.drawLine(0, h-22, w,h-22); 
        g.fillTriangle(3,h-11,11,h-15,11,h-7);
        g.fillTriangle(w-3,h-11,w-11,h-15,w-11,h-7);
        if(ok){
            g.setColor(0x0452BC);
            g.fillRect(14, h-22, w/2-14, 22);
            g.setColor(0xffffff);
            g.drawString("新游戏",w/4+7,h-3, Graphics.HCENTER|Graphics.BOTTOM);
            g.setColor(0x000000);
            g.drawString("选关",3*w/4-7,h-3,Graphics.HCENTER|Graphics.BOTTOM);
        }else{
            g.setColor(0x0452BC);
            g.fillRect(w/2, h-22, w/2-14, 22);
            g.setColor(0x000000);
            g.drawString("新游戏",w/4+7,h-3, Graphics.HCENTER|Graphics.BOTTOM);
            g.setColor(0xffffff);
            g.drawString("选关",3*w/4-7,h-3,Graphics.HCENTER|Graphics.BOTTOM);
        }
        if(select==true){
            g.setColor(0xffffff);
            g.fillRect(25,40, 130, 100);
            g.setColor(0x046DFB);
            g.fillRect(27, 118,126, 20);          
            g.setColor(0xFFA800);
            g.drawRect(25,40,130,100);
            g.setColor(0xFFA800);
            g.drawRect(27,42,126,96);
            g.setColor(0x000000);
            g.fillTriangle(30,128, 36, 125, 36, 131);
            g.fillTriangle(150, 128, 146, 125, 146, 131);
            g.setColor(0x000000);   
            g.drawString("选关",60, 80 ,Graphics.HCENTER|Graphics.BOTTOM);
            g.drawString("(1~40)", 60, 100,Graphics.HCENTER|Graphics.BOTTOM);
            g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN|Font.STYLE_BOLD,Font.SIZE_LARGE));
            g.drawString("[   ]", 115, 90,Graphics.HCENTER|Graphics.BOTTOM );
            g.setFont(Font.getFont(Font.FACE_SYSTEM,Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
            if(index==-1&&select2==0){
                g.drawString("(", 115, 87,Graphics.HCENTER|Graphics.BOTTOM );
            }else if(index!=-1){
                g.drawString(""+index, 115, 87,Graphics.HCENTER|Graphics.BOTTOM );
            }
            if(select2==1){
                g.setColor(0x0452BC);
                g.fillRect(40, 118, 50, 20);
                g.setColor(0xffffff);
                g.drawString("确定", 65, 136, Graphics.HCENTER|Graphics.BOTTOM);
                g.setColor(0x000000);
                g.drawString("取消", 115, 136, Graphics.HCENTER|Graphics.BOTTOM);
            } 
            else if(select2==2){
                g.setColor(0x0452BC);
                g.fillRect(90, 118, 50, 20);
                g.setColor(0x000000);
                g.drawString("确定", 65, 136, Graphics.HCENTER|Graphics.BOTTOM);
                g.setColor(0xffffff);
                g.drawString("取消", 115, 136, Graphics.HCENTER|Graphics.BOTTOM);
            }else if(select2==0){
                g.setColor(0x000000);
                g.drawString("确定", 65, 136, Graphics.HCENTER|Graphics.BOTTOM);              
                g.drawString("取消", 115, 136, Graphics.HCENTER|Graphics.BOTTOM);
            }
        }
    }
    public void keyPressed(int keyCode){
        if(select==false){
            switch(getGameAction(keyCode)){
                case Canvas.LEFT:
                case Canvas.RIGHT:
                     if(ok==true){
                        ok=false;
                    }else{
                        ok=true;
                    }
                    break;
                case Canvas.FIRE:
                    if(ok==true){
                        game=new GameMain(this);
                        game.start();
                        midlet.play(game);
                    }
                    else{
                        select=true;
                        ok2=true;
                    }
                    break;
            }
        }else{ 
            if(select2==0){
                if(keyCode<58&&keyCode>47){
                    keyCode-=48;
                    if(index==-1){
                        index=keyCode;
                    }else if(index<10){
                        index=index*10+keyCode;
                    }
                }else{
                    switch(getGameAction(keyCode)){
                        case Canvas.UP:
                            select2=2;
                            break;
                        case Canvas.DOWN:
                            select2++;
                            break; 
                        default:
                            if(keyCode==-7){
                                if(index>9){
                                    index/=10;
                                }else{
                                    index=-1;
                                }
                            }
                            
                    }
                }
            }else{
                switch(getGameAction(keyCode)){
                    case Canvas.UP:
                        select2--;
                        break;
                    case Canvas.DOWN:
                        select2++;
                        if(select2==3){
                            select2=0;
                        }
                        break;
                    case Canvas.FIRE:
                        if(select2==1){
                            if(index>0&&index<=42){
                                game=new GameMain(this,index-1);
                                game.start();
                                midlet.play(game);
                            }
                            
                        }else{
                            ok=true;
                            select2=0;
                            select=false;
                        }
                        break;
              
                }
            }
        }
        repaint();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -