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

📄 hunt_canvas.java

📁 类似于推箱子的手机游戏源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                }
               continue;
            }
           doTimerStart();
          switch(stage){
              case STARTING:
                  doPoseMove(); 
                  break;
              case STAGEPASSING:
                  doStagepassing();                  
                  break;
              case GAMEOVER:
                  doGameover();
                  break;
                    
          }
            
            
        }
        
    }
    
    
    private void doPoseMove(){
        
         //repaint();
       
        int KeyState = getKeyStates();
        
        if( (KeyState & UP_PRESSED) != 0)           
            post.doMove(UPMOVE);
        else if( (KeyState & DOWN_PRESSED) != 0)
            post.doMove(DOWNMOVE);
         if( (KeyState & LEFT_PRESSED) != 0 )
            post.doMove(LEFTMOVE);
        else if( (KeyState & RIGHT_PRESSED) != 0 )
            post.doMove(RIGHTMOVE);
       
                        
       int n=0;
        for(int i=0;i<size;i++){
            if(flag[i])
                n++;
        }
        if(n<=3)
            isRn = true;
        else
            isRn = false;
        if(isRn){
            switch((rnd.nextInt() & 0x7fffffff) % size){ 
                   case 0:
                       flag[0] = true;
                       break;
                   case 1:
                       flag[1] = true;
                       break;
                   case 2:
                       flag[2] = true;
                       break;
                   case 3:
                       flag[3] = true;
                       break;
                   case 4:
                       flag[4] = true;
                       break;
                    case 5:
                        flag[5] = true;
                        break;
                    case 6:
                        flag[6] = true;
                        break;
               } 
            }
       
        if( (KeyState & FIRE_PRESSED) != 0 ){  
           try{
               bulletPlayer.prefetch();
               bulletPlayer.start();
           }
          
           catch(MediaException e){
           }
           catch(OutOfMemoryError e){
           }
           
           Checkcollides();
          
        }
       repaint();
            
        try {
            mainThread.sleep(80);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
    }

    private void doStarting() {
        //repaint();
    }
    
     public void SubSec() {
        LeftTime--;
       if ( LeftTime == 0 ){
            if ( score == MinScore[StageNum-1] )
                if ( StageNum == MinScore.length )
                    stage = ALLSTATESPASSED;
                else
                    stage = STAGEPASSING;
           else
                stage = GAMEOVER;
        }
        repaint();
    }
    private void paintBackGround(Graphics g){
        g.drawImage( backGroundImg, ScreenWid/2,
                     ScreenHigt/2, Graphics.HCENTER|Graphics.VCENTER );
        g.setColor(0x00FF00FF);
        g.drawString(String.valueOf(LeftTime), 39, 16, Graphics.TOP|Graphics.LEFT);
        g.drawString("时间:", 10, 16, Graphics.TOP|Graphics.LEFT);
        g.drawString(String.valueOf(score), 39, 1, Graphics.TOP|Graphics.LEFT);
        g.drawString("分数:", 10, 1, Graphics.TOP|Graphics.LEFT);
        g.drawString(String.valueOf(MinScore[StageNum-1]), 220, 1, Graphics.TOP|Graphics.LEFT);
        g.drawString("目标分数:", 170, 1, Graphics.TOP|Graphics.LEFT);
        g.drawString(String.valueOf(StageNum), 200, 16, Graphics.TOP|Graphics.LEFT);
        g.drawString("关数:", 170, 16, Graphics.TOP|Graphics.LEFT);
          
    }
  
    public void setFlag(int f,boolean b){
        flag[f] = b;
    }
    
    public synchronized void stop(){ 
         if(!isPaused)
            isPaused = true;
  }
    
     public synchronized void continuegame(){
         if(isPaused)
            isPaused = false;
            doTimerStart();
     }
     
    
     
   
     private void Checkcollides(){
         if(flag[0]){
             if(post.getPostSprite().collidesWith(rabit.getRabit(),true)){
                 rabit.getRabit().setTransform(Sprite.TRANS_ROT180);
                 score+=5;
                 
             }
         }
         
         if(flag[1]){
             if(post.getPostSprite().collidesWith(chicken.getAnimal(),true)){
                 chicken.getAnimal().setTransform(Sprite.TRANS_ROT180);
                 score+=15;
                 chicken.setIsAnimal(false);
             }
         }      
            
         if(flag[2]){
             if(post.getPostSprite().collidesWith(bird.getBird(),true)){
                 bird.getBird().setTransform(Sprite.TRANS_ROT90);
                 score+=25;
                 bird.setIsBird(false);
               
             }
         }  
            
         if(flag[3]){
             if(post.getPostSprite().collidesWith(duck.getBird(),true)){
                 duck.getBird().setFrame(3);
                 score+=20;
                 duck.setIsBird(false);
             }
         }    
            
         if(flag[4]){
             if(post.getPostSprite().collidesWith(fly.getFly(),true)){
                 score+=30;
                 
             }
         }
         if(flag[5]){
             if(post.getPostSprite().collidesWith(pig.getAnimal(),true)){
                     pig.getAnimal().setTransform(Sprite.TRANS_ROT180);
                     score+=10;
                     pig.setIsAnimal(false);
                 }
         }
          if(post.getPostSprite().collidesWith(balloon.getBalloon(),true)){
                score-=5;
                balloon.setIsBalloon(false);
          }
   }
      private void doTimerStart() {
        //计时器不是null的时候就启动计时器
        if(timer == null) {
            GameTimer gameTimer = new GameTimer(this);
            timer = new Timer();
            timer.schedule(gameTimer, 1000, 1000);
        }
    }
       private void doTimerStop() {
        //计时器不是null的时候就停止计时器
        if(timer != null) {
            timer.cancel();
            timer = null;
        }
    }
       
     private void doStagepassing(){
        try{
            Thread.sleep(3000);
        } catch ( InterruptedException e ){}
        ChangeStage();
    }
        
     private void ChangeStage(){
        StageNum++;
        post.InitPost();
        rabit.InitRabitLocus();
        balloon.InitBalloonLocus();
        chicken.setXincrement(5);
        chicken.InitAnimalLocus();   
        bird.InitBirdLocus();
        duck.InitBirdLocus();
        fly.InitFlyLocus();
        pig.setXincrement(15);
        pig.InitAnimalLocus();      
        for(int i = 0;i<size;i++){
            flag[i] = false;
        }
        stage = STARTING;
        LeftTime = TIMEPERSTAGE;        
        
    }
     
     private void doGameover(){ 
         repaint();
        try {
            mainThread.sleep(3000);
        } catch (InterruptedException ex) {
            ex.printStackTrace();
        }
        midlet.MenuListQuit();
     }
     
     
}

⌨️ 快捷键说明

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