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

📄 ghostcanvas.java

📁 J2me手机游戏捉鬼源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                        switch(p_status){
                            case 1://显示画面
                                g.setColor(255,255,255);
                                g.fillRect(0,0,176,208);
                                if (congImg!=null){
                                    g.drawImage(congImg, 0,0, 20);
                                }
                                break;
                        }
                        break;
                }
                break;
            case 3://重新开始
                break;
            case 4://分数排行
                switch(g_status){
                    case 1://显示列表
                        g.setColor(176,221,255);
                        g.fillRect(0,0,176,208);
                        g.setColor(250,0,0);
                        g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
                        if (!svp.isExistRs("point")) {
                            g.drawString("目前没有排行记录!",176/2,100,Graphics.TOP|Graphics.HCENTER);
                        } else{
                            g.drawString("姓名",40,20,20);
                            g.drawString("得分",100,20,20);
                            for (i=0;i<svp.plays.length;i++){
                                g.drawString(svp.plays[i],40,40+i*18,20);
                                g.drawString(""+svp.points[i],100,40+i*18,20);
                            }
                        }
                        break;
                }
                break;
            case 5://游戏帮助
                switch(g_status){
                    case 1:
                        g.setColor(176,221,255);
                        g.fillRect(0,0,176,208);
                        g.setColor(0,0,0);
                        g.setFont(Font.getFont(Font.FACE_MONOSPACE,Font.STYLE_PLAIN,Font.SIZE_SMALL));
                        for (i=0;i<helpMe.length;i++){
                            g.drawString(helpMe[i],0,p_status+i*17,Graphics.TOP|Graphics.LEFT);
                        }
                        break;
                }
                break;
                
        }
        repaint(0,0,176,208);
        serviceRepaints();
    }
    //按键时执行
    int v_GameCode;
    int v_keyCode;
    protected synchronized void keyPressed(int keyCode) {
        v_GameCode = getGameAction(keyCode);
        v_keyCode=keyCode;
        keyPre=true;
    }
    /**************************************************
     *
     *主画布相关函数
     *
     *************************************************/
    void init(){
        svp=new svPoint();
    }
    void exit(){
        svp=null;
        conti=false;
    }
    void unInit(){
        GhostMIDlet.mainMIDlet.notifyDestroyed();
    }
    void rmsPointListInit(){
        svp.getPointList();
    }
    /**************************************************
     *
     *                 主菜单相关函数
     *
     **************************************************/
    void menuInit(){
        if (menuImg==null){
            try{
                menuImg=Image.createImage("/res/menu.png");
            } catch(Exception e){}
        }
        for(i=0;i<menuSelPng.length;i++){
            try{
                menuSelImg[i]=Image.createImage(menuSelPng[i]);
            } catch(Exception e){}
        }
    }
    void unMenu(){
        menuImg=null;
        for(i=0;i<menuSelPng.length;i++){
            try{
                menuSelImg[i]=null;
            } catch(Exception e){}
        }
    }
    /**************************************************
     *
     *                 游戏相关函数
     *
     **************************************************/
    void gameInit(int gate){
        TollGate.gameInit(gate);
        man=new Man();
        man.gameInit();
        Monster.gameInit();
        prop=new Prop();
    }
    void unGame(){
        TollGate.unGame();
        man.unGame();
        man=null;
        Monster.unGame();
        prop=null;
    }
    void startGate(){
        
        switch(i_status){
            case 0:
                TollGate.gateInit();
                i_status++;
                break;
            case 1:
                man.gateInit();
                i_status++;
                break;
            case 2:
                if(panelImg==null){
                    try{
                        panelImg=Image.createImage("/res/panel.png");
                    }catch(Exception e){}
                }
                i_status++;
                break;
            case 3:
                prop.gateInit();
                i_status++;
                break;
            case 4:
                gateTime=TollGate.gateTimes[TollGate.curTollGate]*1000;
                i_status++;
                break;
            case 5:
                Monster.gateInit();
                i_status++;
                break;
            case 6:
                Ghost.gateInit();
                i_status++;
                break;
            case 7:
                svp.saveTollGate(TollGate.curTollGate,Man.point);//保存关卡
                i_status++;
                break;
            case 8:
                i_status++;
                break;
            case 9:
                i_status++;
                break;
            case 10:
                System.gc();
                i_status++;
                break;
        }
    }
    void endGate(){
        panelImg=null;
        man.gateEnd();
        Monster.gateEnd();
        TollGate.gateEnd();
        Ghost.gateEnd();
        prop.gateEnd();
        man.catchGhosts=0;
        System.gc();
    }
    private int isEndGate(){
        //返回值 0-正常 1-捉到全部鬼 2-被怪物碰到 3-关卡时间到
        int r=0;
        if (man.catchGhosts==TollGate.ghostNum[TollGate.curTollGate]){
            r=1;
        } else if(manDead()){
            r=2;
        } else if(gateTime<0){
            r=3;
        }
        return r;
    }
    private boolean manDead(){
        boolean b=false;
        if (man.isCanViolate){
            for (i=0;i<mons.size();i++){
                Monster ms=(Monster)mons.elementAt(i);
                if (ms.monster.collidesWith(man.man,true) && ms.curX==man.curX && ms.curY==man.curY){
                    b=true;
                    break;
                }
            }
        }
        return b;
    }
    void drawPanel(Graphics g){
        if (Ghost.imgs[man.curGhost]==null){
            try{
                Ghost.imgs[man.curGhost]=Image.createImage(Ghost.imgPng[man.curGhost]);
            }catch(Exception e){}
        }
        for (i=0;i<Ghost.imgPng.length;i++){
            if (i!=man.curGhost){
                Ghost.imgs[i]=null;
            }
        }
        g.drawImage(Ghost.imgs[man.curGhost],0,0,20);
        g.drawImage(panelImg,30,0,20);
        g.setFont(Font.getFont(Font.FACE_PROPORTIONAL,Font.STYLE_BOLD,Font.SIZE_LARGE));
        g.setColor(255,0,0);
        g.drawLine(67, 4, 67, 28);
        g.drawLine(145, 4, 145, 28);
        g.setColor(255,222,0);
        g.drawString(""+Man.point,75,7,20);
        g.drawString(""+gateTime/1000,174,7,Graphics.TOP|Graphics.RIGHT);
        int t=-1;//显示哪种道具
        int n=0;//数量
        if(man.isStop){
            t=0;
            n=man.p_stop;
        } else if(man.isReduRate){
            t=1;
            n=man.p_reduRate;
        } else if(man.isSight){
            t=2;
            n=man.p_sight;
        } else if(!man.isCanViolate){
            t=3;
            n=man.p_violate;
        } else if(man.isAddRate){
            t=4;
            n=man.p_addRate;
        } else if(man.isCandle){
            t=5;
            n=man.p_candle;
        }
        if (t!=-1){
            //g.drawString("道具:",36,9,20);
            g.drawImage(Prop.imgs[t],36,1,20);
            //g.drawString(n+"次 ",62,9,20);
        } else{
            //g.drawString("道具:",36,9,20);
            //g.drawString("次数: ",93,9,20);
        }
    }
    public void gateImgInit(int gate){
        int n1=gate/10;
        int n2=gate%10;
        if (gateImg==null){
            try{
                gateImg=Image.createImage("/res/gate.png");
            }catch(Exception e){}
        }
        if (n1>0 && gateNumImg[n1]==null){
            try{
                gateNumImg[n1]=Image.createImage(gateNumPng[n1]);
            }catch(Exception e){}
        }
        if (gateNumImg[n2]==null){
            try{
                gateNumImg[n2]=Image.createImage(gateNumPng[n2]);
            }catch(Exception e){}
        }
    }
    public void UnGateImg(){
        gateImg=null;
        for (i=0;i<10;i++){
            gateNumImg[i]=null;
        }
    }
}

⌨️ 快捷键说明

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