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

📄 ictankcanvas.java.bak

📁 本j2me坦克游戏是在Nokia平台下开发的
💻 BAK
📖 第 1 页 / 共 5 页
字号:

                g.drawString("" + password[2], width/2, height/2, g.TOP|g.HCENTER);

                if ( passPos == 4)
                    g.setColor(0xfe, 0x3f, 0x00);
                else
                    g.setColor(0xff, 0xff, 0xfe);

                g.drawString("" + password[3], width/2+10, height/2, g.TOP|g.HCENTER);

               if ( passPos == 5)
                   g.setColor(0xfe, 0x3f, 0x00);
                else
                    g.setColor(0xff, 0xff, 0xfe);

                g.drawString("OK", width/2+20, height/2, g.TOP|g.HCENTER);
                break;

            case 7:
                level = 1;
                for ( lev = 0; lev < 20; lev ++ ) {
                    samePas = true;
                    for (i = 0; i < 4; i ++){
                        if ( password[i] != levelPas [(lev*4+i)]){
                            samePas = false;
                        }
                    }
                    if ( samePas ){
                        pasLevel = lev + 1;
                        break;
                    }
                }

                if ( samePas )
                    gameSubStatus = 8;
                else
                    gameSubStatus = 10;

                break;

            case 8:
                g.setColor(0x0);
                g.fillRect(0, 0, width, height);

	            for ( i  = 0; i < 5; i ++ ){
	                g.setColor(0x7f+i*10, 0x7f+i*10, 0x7f+i*10);
	                g.drawRect( 50+i, 6+height/3+i, width-100-i*2, height-height/3*2-i*2);
	            }

                g.setColor(0xffffff);
                g.setFont(Font.getFont(Font. FACE_PROPORTIONAL,  Font.STYLE_BOLD, Font.SIZE_MEDIUM));
                g.drawString("选关", width/2, height/4, g.TOP|g.HCENTER);
                level = 1;
                passPos = 1;
                gameSubStatus ++;

                break;

            case 9:
                g.setColor(0x0);
                g.fillRect(56, height/2, width-100-10, fontHeight );

                g.setColor(0xffffff);

                g.setFont(Font.getFont(Font. FACE_PROPORTIONAL,  Font.STYLE_BOLD, Font.SIZE_SMALL));

                g.drawString("关数", width/2-30, height/2, g.TOP|g.LEFT);

                if ( passPos == 1)
                    g.setColor(0xfe, 0x3f, 0x00);
                else
                    g.setColor(0xff, 0xff, 0xfe);

                g.drawString("" + level, width/2+2, height/2, g.TOP|g.LEFT);

                if ( passPos == 2)
                    g.setColor(0xfe, 0x3f, 0x00);
                else
                    g.setColor(0xff, 0xff, 0xfe);

                g.drawString("OK", width/2+30, height/2, g.TOP|g.RIGHT);

                break;

            case 10:
                g.setColor(0x0);
                g.fillRect(0, 0, width, height);

                life = 3;
                initLevel();
                setLevel(level);
                gameStatus = 3;
                gameSubStatus = 1;
                showLevel = true;
                break;

            default:
                break;

        }
    }


    private void gamePaint(Graphics g) {
    	if(pauseStart){
        	g.setColor(0xffffff);
        	g.fillRect(0,0,width,height);
        	g.drawImage(helpImage,0,0,20);
        }else{

        boolean lifePos;
        int i, j;
        boolean victorFlag;
        grassPaint = false;
        g.setColor(0x3f, 0x3f, 0x3f);
        g.fillRect(0, 0, width, mapOffsetY);
        g.fillRect(0, 0, mapOffsetX, mapOffsetY+mapHeight);
        g.fillRect(mapOffsetX + mapWidth, 0, width - mapOffsetX - mapWidth, mapOffsetY+mapHeight);
     //   g.fillRect(0, mapOffsetY + mapHeight, width, mapOffsetY);



        if ( showLevel ){




            g.setColor(0);
            g.fillRect(0, 0, width, height);

            g.setColor(fadeCol, fadeCol, fadeCol);
            g.setFont(Font.getFont(Font. FACE_PROPORTIONAL,  Font.STYLE_BOLD, Font.SIZE_MEDIUM));
            g.drawString("第 "+ level + " 关", width/2, height/2, 17);

            if ( fadein ) {
                if ( fadeCol < 0xfc ){
                    //fadeCol += 4;
                    fadeCol += 16;
                    if(fadeCol>0xfc){
                        fadeCol -= 16;
                        fadein = false;
                    }
                }else
                    fadein = false;
            } else {
                if ( fadeCol > 0 ){
                   // fadeCol -= 4;
                   fadeCol -= 16;
                   if (fadeCol < 0) {
                       showLevel = false;
                   }
                }else {
                    showLevel = false;
                }
            }
            return;
        }

        lifePos = ( width > height )? true : false ;

        if ( firstTime || pauseBack){
        	if(firstTime){
        	    s = new Sound(beginlist,1);
        	    s.play(1);
            }
            victorFlag = false;
            g.setColor(0x3f, 0x3f, 0x3f);
            g.fillRect(0, 0, width, height);

            // draw the map
            for ( i = 0; i < mapHeight/tileW; i += 2 ){
                for ( j = 0; j < mapWidth/tileW; j += 2 ){
                    switch( mapInfo[(i*mapWidth/tileW)+j] ) {
                    case 0:
                        g.drawImage(tile1, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
                        break;
                    case 1:
                        g.drawImage(tile2, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
                        break;
                    case 2:
                        g.drawImage(tile3, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
                        break;
                    case 3:
                        g.drawImage(tile4, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
                        break;
                    case 4:
                    case 5:
                    case 6:
                    case 7:
                        if ( !victorFlag ){
                            g.drawImage(victor, mapOffsetX+j*tileW, mapOffsetY+i*tileW, g.TOP|g.LEFT);
                            victorFlag = true;
                        }
                    default:
                        break;
                    }
                }
            }

         //   g.drawImage(onTimer, 150, 150, g.TOP|g.LEFT);
            g.setColor(0x0);

            if ( lifePos ){
                g.drawImage(logo, mapOffsetX+mapWidth+2, mapOffsetY+2 , g.TOP|g.LEFT);
                g.drawImage(ic, mapOffsetX+mapWidth+2, mapOffsetY+mapHeight/2, g.TOP|g.LEFT);
            }else {
                g.drawImage(logo, mapOffsetX+2, mapOffsetY+mapHeight+2 , g.TOP|g.LEFT);
                g.drawImage(ic, mapOffsetX+mapWidth/2, mapOffsetY+mapHeight+2, g.TOP|g.LEFT);
            }

            firstTime = false;
            pauseBack = false;


        }






        g.setFont(Font.getFont(Font.FACE_SYSTEM,  Font.STYLE_ITALIC, Font.SIZE_SMALL));

        if ( lifePos ){		//horizontal
            g.setColor(0x3f, 0x3f, 0x3f);
            g.fillRect(mapOffsetX+mapWidth+1, mapOffsetY+hero.frameHeight+3, 20, fontHeight);
            g.fillRect(mapOffsetX+mapWidth+1, mapOffsetY+mapHeight/2+hero.frameHeight+2, 20, fontHeight);

            g.setColor(0xff, 0xff, 0xfe);
            g.drawString(" "+ life, mapOffsetX+mapWidth+2, mapOffsetY+hero.frameHeight+1, g.TOP|g.LEFT);
            g.drawString(" "+ numEnemy, mapOffsetX+mapWidth+2, mapOffsetY+mapHeight/2+hero.frameHeight+0, g.TOP|g.LEFT);
        }else {				//vertical
            g.setColor(0x3f, 0x3f, 0x3f);
            g.fillRect(mapOffsetX+hero.frameWidth+3, mapOffsetY+mapHeight+1, 20, fontHeight);
            g.fillRect(mapOffsetX+mapWidth/2+hero.frameWidth+1, mapOffsetY+mapHeight+1, 20, fontHeight);

            g.setColor(0xff, 0xff, 0xfe);
            g.drawString(" "+ life, mapOffsetX+hero.frameWidth+2, mapOffsetY+mapHeight+1, g.TOP|g.LEFT);
            g.drawString(" "+ numEnemy, mapOffsetX+mapWidth/2+hero.frameWidth, mapOffsetY+mapHeight+1, g.TOP|g.LEFT);
        }

        g.setColor(0xffffff);
	    g.setFont(Font.getFont(Font. FACE_PROPORTIONAL,  Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
	    g.drawString("帮助", width-fontWidth, height-fontHeight, 20);
	    g.drawString("退出", 10, height-fontHeight, 20);

        //add by johnson

        if(reDraw ){
            //repaint the special area
            if (symboll.formerSymbolX != -1) {
                int fromX = symboll.formerSymbolX - mapOffsetX - tileW*2;
                int fromY = symboll.formerSymbolY - mapOffsetY - tileW*2;
                int toX = symboll.formerSymbolX - mapOffsetX + symboll.symbolWidth + tileW*2;
                int toY = symboll.formerSymbolY - mapOffsetY + symboll.symbolHeight + tileW*2;
                //adjust the repaint area
                if(fromX<0){
                    fromX = 0;
                }else if((fromX%(tileW*2))!=0){
                    fromX = fromX - (fromX%(tileW*2));
                }
                if(fromY<0){
                    fromY = 0;
                }else if((fromY%(tileW*2))!=0){
                    fromY = fromY - (fromY%(tileW*2));
                }
                if(toX>mapWidth){
                    toX = mapWidth;
                }
                if(toY>mapHeight){
                    toY = mapHeight;
                }

               for (i = fromY / tileW;
                     i < toY / tileW;
                     i += 2) {
                    for (j = fromX / tileW;
                         j < toX / tileW;
                         j += 2) {
                        switch (mapInfo[ (i * mapWidth / tileW) + j]) {
                            case 0:
                                g.drawImage(tile1, mapOffsetX + j * tileW,
                                            mapOffsetY + i * tileW,
                                            g.TOP | g.LEFT);
                                break;
                            case 1:
                                g.drawImage(tile2, mapOffsetX + j * tileW,
                                            mapOffsetY + i * tileW,
                                            g.TOP | g.LEFT);
                                break;
                            case 2:
                                g.drawImage(tile3, mapOffsetX + j * tileW,
                                            mapOffsetY + i * tileW,
                                            g.TOP | g.LEFT);
                                break;
                            case 3:
                                g.drawImage(tile4, mapOffsetX + j * tileW,
                                            mapOffsetY + i * tileW,
                                            g.TOP | g.LEFT);
                                break;
                            case 4:
                            case 5:
                            case 6:
                            case 7:
                                /* if (!victorFlag) {
                                     g.drawImage(victor, mapOffsetX + j * 3,
                                                 mapOffsetY + i * 3,
                                                 g.TOP | g.LEFT);
                                     victorFlag = true;
                            }*/
                            default:
                                break;
                        }
                    }
                }
       }
       //repaint end
       reDraw = false;
       hero.paint(g);
        }


        if(symboll.symbolState!=0){
            symboll.paint(g);
        }


       // hero.paint(g);

        //add by johnson to realize the symbol collision judgement
        if(symboll.symbolState != 0){
            if (hero.isobjCollide(symboll.symbolX, symboll.symbolY,
                                  symboll.symbolWidth, symboll.symbolHeight)) {
                bonusMark = bonusMark + 500;
                switch(symboll.symbolState){
                    case 1:  //timer
                        for ( i = 0; i < maxEnemy; i ++ ){
                            if (enemyAlive[i]) {
                                enemy[i].ifTimer = true;
                            }
                            ifTimer = true;
                            ictimer.timeCounter = 0;
                        }
                        break;
                    case 2: //star
                        if(bullet[0].starNum<3){
                            bullet[0].starNum = bullet[0].starNum + 1;
                        }
                        break;
                    case 3: //bomber
                      //  System.out.println("maxEnemy="+maxEnemy);
                        for ( i = 0; i < maxEnemy; i ++ ){
                            enemy[i].alive = false;
                            if ( enemyAlive[i] ){

                                enemyAlive[i] = false;
                                numEnemy--;

                                g.drawImage(bombImage, enemy[i].posX, enemy[i].posY, g.TOP|g.LEFT);

                                Point p = new Point(enemy[i].posX,enemy[i].posY);
                                tempPos.addElement(p);
                                enemy[i].posX = -1000;
                                enemy[i].posY = -1000;

⌨️ 快捷键说明

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