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

📄 showmap.java

📁 一款jbuilder开发的j2me射击游戏!
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                            upMapWidth = upBlock - upMapX;
                            upMapX = upMapImg.getWidth() + upMapX - upBlock;
                            divide = true;
                        }
                    }
                }
                break;
            case RIGHT:
                perMovable = perX < perMaxX;
                if(perMovable){
                    perX = (perX + upBlock) > perMaxX ? perMaxX:(perX + upBlock);
                    if(perX > 40){
                        BulletTrace.xSc = - 4;
                    }
                }else{
                    moveBullet( - upBlock);
                    ogreX -= upBlock;
                    if(ogreX < (offWidth - upMapImg.getWidth())){
                        ogreX += upMapImg.getWidth();
                    }
                    if (divide){
                        if(upMapWidth > upBlock){
                            upMapX += upBlock;
                            upMapWidth -= upBlock;
                        }else{
                            upMapWidth = offWidth;
                            upMapX = upMapX + upBlock - upMapImg.getWidth();
                            divide = false;
                        }
                    }else{
                        upMapX += upBlock;
                        if(upMapImg.getWidth() - upMapX < offWidth){
                            upMapWidth = upMapImg.getWidth() - upMapX;
                            divide = true;
                        }
                    }
                }
                break;
            default:
                break;
        }
    }

    private void moveBullet(int offset){
        for(Enumeration en = bulletVector.elements(); en.hasMoreElements(); ){
            ((BulletTrace)en.nextElement()).move(offset);
        }
        for(Enumeration en = ogreBulletVector.elements(); en.hasMoreElements(); ){
            ((OgreBullet)en.nextElement()).move(offset);
        }
    }

    protected void paint(Graphics g) {
        /**@todo Implement this javax.microedition.lcdui.Canvas abstract method*/
        g.drawImage(offImg,this.offScrX,this.offScrY,20);
        personCurrent = (personCurrent == 6) ? 0 : personCurrent ;
    }

    public void repaint2(){
        repaint();
        serviceRepaints();
    }

    private void cleanScreen() {
        int c = offScreen.getColor();
        offScreen.setColor(255, 255, 255);
        offScreen.setClip(0,0,WIDTH,HEIGHT);
        offScreen.fillRect(offScreen.getClipX(),offScreen.getClipY(),
                           offScreen.getClipWidth(),offScreen.getClipHeight());
        offScreen.setColor(c);
    }

    private void splashPaint() throws Exception{
        if(splash == null){
            System.gc();
            splash = Image.createImage("/shoot/splash.png");
        }
        int c = offScreen.getColor();
        offScreen.setColor(255, 255, 255);
        offScreen.setClip(0,0,WIDTH,HEIGHT);
        offScreen.fillRect(offScreen.getClipX(),offScreen.getClipY(),
                           offScreen.getClipWidth(),offScreen.getClipHeight());
        offScreen.setColor(c);
        offScreen.drawImage(splash,0,0,Graphics.TOP|Graphics.LEFT);
        splash = null;
        System.gc();
    }

    private void endPaint(boolean endGame){
        String scr = "score: " + score;
        String mscr = "High: " + maxScore;
        String endMsg = "";
        if(endGame){
            screenTurn = 1;
            endMsg = "game over";
            stageLevel = 1;
            score = 0;
        }else{
            screenTurn = 2;
            endMsg = "next stage";
            stageLevel++;
        }
        if(this.maxScore < score) maxScore = score;
        perLife = 3 * plen;
        ogreCount = 40;
        saveData(false);

        Font font = Font.getDefaultFont();

        int x = (offWidth - font.stringWidth(scr))/2;
        int y = (offHeight - font.getHeight() * 5)/2;
        offScreen.setClip(x,y,font.stringWidth(scr),font.getHeight());
        offScreen.drawString(scr,x,y,Graphics.TOP|Graphics.LEFT);
        offScreen.setClip(x,y + font.getHeight() * 2,font.stringWidth(endMsg),font.getHeight());
        offScreen.drawString(mscr,x,y + font.getHeight() * 2,Graphics.TOP|Graphics.LEFT);
        offScreen.setClip(x,y + font.getHeight() * 4,font.stringWidth(endMsg),font.getHeight());
        offScreen.drawString(endMsg,x,y + font.getHeight() * 2,Graphics.TOP|Graphics.LEFT);
        scr = null;
        endMsg = null;
        System.gc();
    }

    private void menuPaint()throws Exception{
        if(menu == null){
            System.gc();
            menu = Image.createImage("/shoot/menu.png");
        }
        int c = offScreen.getColor();
        offScreen.setColor(255, 255, 255);
        offScreen.setClip(0,0,WIDTH,HEIGHT);
        offScreen.fillRect(offScreen.getClipX(),offScreen.getClipY(),
                           offScreen.getClipWidth(),offScreen.getClipHeight());
        offScreen.setColor(c);
        offScreen.drawImage(menu,0,0,Graphics.TOP|Graphics.LEFT);
        menu = null;
        System.gc();
    }

    private void menubarPaint()throws Exception{
        if(menubar == null){
            System.gc();
            menubar = Image.createImage("/shoot/menubar.png");
        }
        offScreen.setClip(mbar[0],mbar[menuitem],menubar.getWidth(),menubar.getHeight());
        offScreen.drawImage(menubar,mbar[0],mbar[menuitem],Graphics.TOP|Graphics.LEFT);
        menubar = null;
        System.gc();
    }

    private void stagePaint(int i) throws Exception{
        if(stage == null){
            System.gc();
            stage = Image.createImage("/shoot/stage.png");
        }
        int numW = (stage.getWidth() - stagePos)/10;
        int w = stagePos;
        int h = stage.getHeight();
        int x = (offWidth - w)/2 ;
        int y = (offHeight - 2 * h)/2 ;
        offScreen.setClip(x,y,w,h);
        offScreen.drawImage(stage,x,y,Graphics.TOP | Graphics.LEFT);
        int num = i/10;
        x = (offWidth - 2 * numW)/2;
        y = y + h;
        offScreen.setClip(x,y,numW,h);
        offScreen.drawImage(stage,x - (stagePos + num * numW),y,Graphics.TOP | Graphics.LEFT);
        num = i % 10;
        x = x + numW;
        offScreen.setClip(x,y,numW,h);
        offScreen.drawImage(stage,x - (stagePos + num * numW),y,Graphics.TOP | Graphics.LEFT);
        stage = null;
        System.gc();
    }

    private void lifePaint(int ll) throws Exception{
        if(life == null){
            System.gc();
            life = Image.createImage("/shoot/life.png");
        }
        int x = 2;
        int y = offHeight - life.getHeight();
        int w = lifeLen;
        int h = life.getHeight();
        offScreen.setClip(x,y,w,h);
        offScreen.drawImage(life,x,y,Graphics.TOP|Graphics.LEFT);
        if(ll <= plen){
            lifeBlockPaint(0,ll);
        }else if(ll <= 2 * plen){
            lifeBlockPaint(0,plen);
            if(ll - plen > 0){
                lifeBlockPaint(1,ll - plen);
            }
        }else if(ll <= 3*plen){
            lifeBlockPaint(0,plen);
            lifeBlockPaint(1,plen);
            if(ll - 2*plen > 0){
                lifeBlockPaint(2,ll - 2*plen);
            }
        }
    }

    private void lifeBlockPaint(int type,int len)throws Exception{
        if(life == null){
            System.gc();
            life = Image.createImage("/shoot/life.png");
        }
        int x = 0;
        int offset = 0;
        int y = offHeight - life.getHeight();
        int bw = (life.getWidth() - lifeLen)/3;
        switch(type){
            case 0:
                x = lifeLen + 2;
                offset = lifeLen;
                break;
            case 1:
                x = lifeLen + bw * plen + 2;
                offset = lifeLen + bw;
                break;
            case 2:
                x = lifeLen + bw * 2*plen + 2;
                offset = lifeLen + 2 * bw;
                break;
        }
        for(int i = 0; i < len ; i++){
            offScreen.setClip(x + i * bw,y,bw,life.getHeight());
            offScreen.drawImage(life,x + i * bw - offset,y,Graphics.TOP|Graphics.LEFT);
        }
    }

    private void playPaint() {
        //Draw up-part map
        if(divide){
            int tmpint = this.offWidth - this.upMapWidth;
            offScreen.setClip(0,0,this.upMapWidth,this.upScrHeight);
            offScreen.drawImage(this.upMapImg,0 - this.upMapX, 0 - this.upMapY,20);
            offScreen.setClip(this.upMapWidth, 0,
                              this.offWidth - this.upMapWidth,
                              this.upScrHeight);
            offScreen.drawImage(this.upMapImg,this.upMapWidth,0 - this.upMapY,20);
        }else{
            offScreen.setClip(0,0,this.offWidth,this.upScrHeight);
            offScreen.drawImage(this.upMapImg,0 - this.upMapX, 0 - this.upMapY,20);
        }
        //Draw down-part map
        offScreen.setClip(0,0,this.offWidth,this.offHeight);
        offScreen.drawImage(downMapImg[current],0,this.upScrHeight - 1,20);
        //Draw ogre
        OgreBullet ob;
        if(ogreAlive){
            offScreen.setClip(0, 0, this.offWidth, this.offHeight);
            offScreen.drawImage(ogreImg[oCurrent][yCurrent], ogreX, ogreY[yCurrent], 20);
        }
        //Draw ogre bullet
        int x,y,w,h;
        for (Enumeration en = ogreBulletVector.elements();
             en.hasMoreElements(); ) {
            ob = (OgreBullet) en.nextElement();
            if (ob.size < 0) {
                ob.cancel();
                ogreBulletVector.removeElement(ob);
                continue;
            }
            if (ob.size == 0) {
                if(stageLevel > 20){
                    x = perX;
                    y = perY;
                    w = PWIDTH;
                    h = PHEIGHT;
                }else if(stageLevel > 10){
                    x = perX + 1;
                    y = perY + 1;
                    w = PWIDTH - 2;
                    h = PHEIGHT - 2;
                }else{
                    x = perX + 2;
                    y = perY + 2;
                    w = PWIDTH - 4;
                    h = PHEIGHT - 4;
                }
                int tmpi = hitTest(ob.target[0], ob.target[1], 1, 1,x,y,w,h);
                if(tmpi == 1){
                    personCurrent = 6;
                    if(perLife > 0) perLife--;
                    if(perLife == 0){
                        personCurrent = 7;
                        appRun = false;
                    }
                    System.out.println("You lost!");
                }
            }
            offScreen.setClip(ob.pos[0], ob.pos[1], bulletList[ob.size][2],
                              bulletList[ob.size][2]);
            offScreen.drawImage(fireImg[1],
                                ob.pos[0] - bulletList[ob.size][0],
                                ob.pos[1] - bulletList[ob.size][1], 20);
        }

        ob = null;
        //Draw person bullet
        for(Enumeration en = bulletVector.elements(); en.hasMoreElements() ;){
            btTmp = (BulletTrace)en.nextElement();
            if(btTmp.size > 5 ) {
                btTmp.cancel();
                bulletVector.removeElement(btTmp);
                continue;
            }
            if (btTmp.size == 5) {
                if(stageLevel > 20){
                    x = ogreX;
                    y = ogreY[yCurrent] - 1;
                    w = ogreImg[oCurrent][yCurrent].getWidth();
                    h = ogreImg[oCurrent][yCurrent].getHeight() - 2;
                }else {
                    x = ogreX;
                    y = ogreY[yCurrent];
                    w = ogreImg[oCurrent][yCurrent].getWidth();
                    h = ogreImg[oCurrent][yCurrent].getHeight();
                }
                int tmpi = hitTest(btTmp.target[0], btTmp.target[1], 1, 1,x,y,w,h);
                if(tmpi == 1){
                    score++;
                    effect.vibrator(200);
                    if(ogreCount > 0) ogreCount--;
                    if(ogreCount == 0) appRun = false;
                    System.out.println("score:"+score);
                    oCurrent = 1;
                }
            }

⌨️ 快捷键说明

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