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

📄 raidencanvas.java

📁 JVAV手机游戏单机版 连连看
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        //背景1
        
        if (score > 4000 && score <= 7000)
        {
            g.drawImage(imgBack2, 0, backY, 0); //背景2
           if(backY>0&&backY<CanvasHeight)
        	g.drawImage(imgBack2, 0, backY-imgBack2.getHeight(), 0);
        }
        if (score > 7000 && score <= 10100)
        {
            g.drawImage(imgBack3, 0, backY, 0); //背景3
                    if(backY>0&&backY<CanvasHeight)
        	g.drawImage(imgBack3, 0, backY-imgBack2.getHeight(), 0);
        }

        player.paint(g);
        for (i = 0; i < 3; i++)
        {
            bullets[i].draw(g);
        }
        enemy1.draw(g);
        enemy2.draw(g);

        for (i = 0; i < 8; i++)
        {
            enemy3456[i].draw(g);
        }
        bonus.draw(g);
        g.drawImage(imgState, 0, CanvasHeight - 10, g.TOP | g.LEFT);
        g.setColor(0xffff00);
        g.fillRect(8, CanvasHeight - 10+3, energy, 4);
        if (isExplored)
        {
            g.drawImage(imgExplored, expX, expY, g.TOP | g.LEFT);
            isExplored = false;
        }
        switch(life){
          case 3:
          g.drawImage(imgLife, 60+imgLife.getWidth(),CanvasHeight-imgLife.getHeight(), g.TOP | g.LEFT);
          g.drawImage(imgLife, 60+2*imgLife.getWidth(), CanvasHeight-imgLife.getHeight(), g.TOP | g.LEFT);
          g.drawImage(imgLife, 60+3*imgLife.getWidth(), CanvasHeight-imgLife.getHeight(), g.TOP | g.LEFT);
          break;
          case 2:
         	g.drawImage(imgLife, 60+imgLife.getWidth(), CanvasHeight-imgLife.getHeight(), g.TOP | g.LEFT);
          g.drawImage(imgLife, 60+2*imgLife.getWidth(), CanvasHeight-imgLife.getHeight(), g.TOP | g.LEFT);           break;
          case 1:
         	g.drawImage(imgLife, 60+imgLife.getWidth(), CanvasHeight-imgLife.getHeight(), g.TOP | g.LEFT);
          break;  
          default:
          break;      
        }
        g.setFont(font);
        g.setColor(0xffffff);
        g.drawString("暂停",CanvasWidth-2*fontWidth,CanvasHeight-fontHeight,g.TOP|g.LEFT);
        drawScore(g);
        if(isWin||isFail){
        
          g.setColor(0x000000);
          g.fillRect(0,0,CanvasWidth,CanvasHeight);
          if(isWin)g.drawImage(imgWin,CanvasWidth/2,CanvasHeight/2,g.VCENTER|g.HCENTER);
          if(isFail)g.drawImage(imgFail,CanvasWidth/2,CanvasHeight/2,g.VCENTER|g.HCENTER);
          if(score>midlet.highScore&&isFail){
          	g.setColor(0xffffff);
          	g.drawString("恭喜,打破记录!",40,CanvasHeight/2+40,g.TOP|g.LEFT);
          }
        }
      
        flushGraphics();
    }
    private void drawScore(Graphics g)
    {
    	 i = score/10000;
       g.drawImage(num[i],CanvasWidth-5*7-5,0,g.TOP|g.LEFT);
       i = (score%10000)/1000;
       g.drawImage(num[i],CanvasWidth-4*7-4,0,g.TOP|g.LEFT);
       i = (score%1000)/100;
       g.drawImage(num[i],CanvasWidth-3*7-3,0,g.TOP|g.LEFT);
       i = (score%100)/10;
       g.drawImage(num[i],CanvasWidth-2*7-2,0,g.TOP|g.LEFT);
       i = score%10;
       g.drawImage(num[i],CanvasWidth-1*7-1,0,g.TOP|g.LEFT);                           
    }
    private void tick()
    {
        
        Enemy3456Cnt++;
        if (Enemy3456Cnt % 15 == 0)
        {
            i = (random.nextInt() & 0x7fffffff) % 8;
            if (enemy3456[i].isAlive() == false)
                enemy3456[i].setAlive(true);
        }
        bonusCnt++;
        if (bonusCnt % 5 == 0)//改成100
        {
            if (bonus.isAlive() == false)
            {
                bonus.setAlive(true);
            }
        }
        // If player presses two or more direction buttons, we ignore them
        // all. But pressing fire is independent. The code below also ignores
        // direction buttons if GAME_A..GAME_D are pressed.
       // if (backY <= 0)
       // {
            //背景从y<0开始下移
            backY = backY + 1;
      //  }
        if (backY ==CanvasHeight )
        {
            //至y>0返回重新移动
            backY = CanvasHeight - imgBack1.getHeight();;
        }
        for (i = 0; i < 8; i++)
        {
            enemy3456[i].tick();
        }
        bonus.tick();
        player.tick();
        if(bonus.isAlive() == true&&player.collidesWith(bonus,false)){
           bonus.setAlive(false);
           if(midlet.set[RaidenMIDlet.AUDIO])audio.playSound(Audio.BONUS);
           switch(bonus.bonusType)
           {
           	case 0:
           	  player.speedup();
           	break;
           	case 1:
           	  life++;if(life>3)life = 3;
           	break;
           	case 2:
           	
           	energy+=16;
           	if(energy>40)energy=40;
           	break;
           }
        }
        for (i = 0; i < 3; i++)
        {
            bullets[i].tick();
        }
        
        if((1400>=score&&score>=1000||2400>=score&&score>=2000||6400>=score&&score>=6000)&&enemy1.isAlive() ==false)enemy1.setAlive(true);
        if((3500>=score&&score>=3100||8500>=score&&score>=8000||9500>=score&&score>=9000)&&enemy2.isAlive() ==false)enemy2.setAlive(true);
    
        	enemy1.tick(player.getRefPixelX());
        	if(player.collidesWith(enemy1,false)){
        	life--;energy=40;
        	player.setAlive(true);}
  
       
        	enemy2.tick();
        	if(player.collidesWith(enemy2,false)){
        	life--;energy=40;
        	player.setAlive(true);}
       
        if(enemy1.isBullet1Alive&&player.collidesWith(enemy1.bullet1,false)){
          enemy1.isBullet1Alive = false;
                isExplored = true;
                expX = player.getX();
                expY = player.getY();  
                energy-=8;                        
        }
        if(enemy1.isBullet2Alive&&player.collidesWith(enemy1.bullet2,false)){
          enemy1.isBullet2Alive = false;
                isExplored = true;
                expX = player.getX();
                expY = player.getY();     
                energy-=8;                     
        }        
        if(enemy2.isBullet1Alive&&player.collidesWith(enemy2.bullet1,true)){
          enemy2.isBullet1Alive = false;
                isExplored = true;
                expX = player.getX();
                expY = player.getY();  
                energy-=8;                        
        }
        if(enemy2.isBullet2Alive&&player.collidesWith(enemy2.bullet2,true)){
          enemy2.isBullet2Alive = false;
                isExplored = true;
                expX = player.getX();
                expY = player.getY(); 
                energy-=8;                         
        }         
        for (i = 0; i < 3; i++)
            {
                if (enemy1.isAlive() && bullets[i].isAlive() &&
                    bullets[i].collidesWith(enemy1, false))
                {
                    isExplored = true;
                    expX = bullets[i].getRefPixelX();
                    expY = bullets[i].getRefPixelY();
                    enemy1.energy--;
                    if(enemy1.energy==0){enemy1.setAlive(false);score+=400;if(midlet.set[RaidenMIDlet.AUDIO])audio.playSound(Audio.EXPLOSION);}
                 
                }
                if (enemy2.isAlive() && bullets[i].isAlive() &&
                    bullets[i].collidesWith(enemy2, false))
                {
                    isExplored = true;
                    expX = bullets[i].getRefPixelX();
                    expY = bullets[i].getRefPixelY();
                    enemy2.energy--;
                    if(enemy2.energy==0){enemy2.setAlive(false);score+=400;if(midlet.set[RaidenMIDlet.AUDIO])audio.playSound(Audio.EXPLOSION);}
                 
                }
            }
        for (i = 0; i < 8; i++)
        {
            for (j = 0; j < 3; j++)
            {
                if (enemy3456[i].isAlive() && bullets[j].isAlive() &&
                    bullets[j].collidesWith(enemy3456[i], false))
                {
                    isExplored = true;
                    expX = enemy3456[i].getX();
                    expY = enemy3456[i].getY();
                    enemy3456[i].setAlive(false);
                    bullets[j].setAlive(false);
                    score+=100;
                    if(midlet.set[RaidenMIDlet.AUDIO])audio.playSound(Audio.DEAD);
                }
            }
            if (enemy3456[i].isAlive() && player.collidesWith(enemy3456[i],false))
            {
                enemy3456[i].setAlive(false);
                isExplored = true;
                expX = enemy3456[i].getX();
                expY = enemy3456[i].getY();
                life--;energy=40;
                player.setAlive(true);
            }
            if(enemy3456[i].isBulletAlive&& player.collidesWith(enemy3456[i].bullet,false))
            {
            	//  enemy3456[i].setAlive(false);
                isExplored = true;
                expX = player.getX();
                expY = player.getY();
                enemy3456[i].isBulletAlive = false;
                energy-=8;
            }
        }

        if(energy == 0){life--;energy=40;if(midlet.set[RaidenMIDlet.AUDIO])audio.playSound(Audio.NEW_PLAYER);}
        if(life==-1){isFail = true;
        if(midlet.set[RaidenMIDlet.AUDIO])audio.playSound(Audio.FAIL);
        }
        if(score>=10000){
        	isWin = true;
        	if(midlet.set[RaidenMIDlet.AUDIO])audio.playSound(Audio.WIN);
        	if(midlet.set[RaidenMIDlet.VIBRA])midlet.vibrate(100,100,3);
        }
    }
}

⌨️ 快捷键说明

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