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

📄 gamecanvas.java

📁 这是一个跳跳板的游戏的源代码,是一个不错的小游戏!
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
         man.setAlive(false);
         	
     }
    
     
     //抓取东西
     if((man.getX()+17>111)
            &&(man.getX()+17<128)
            &&(man.getY()+22>44)
            &&(man.getY()+22<75)&&!jumpCan&&manState!=0){
     	if(p<1){
        empty();
     	man.setState(5);
     	tmpX=115;
     	man.setX(tmpX);
     	tmpY=54;
     	man.setY(tmpY);
     	jumpCan=true;
     	manState=0;
     	jumpUD=10;
    	}else{
   	     man.setAlive(false);	
     	}
     }
 }
         void empty(){
  	            for(int i=0;i<9;i++){
                  board1[i][5]=0;	
                }
                for(int i=0;i<9;i++){
                  board2[i][5]=0;	
                }
                for(int i=0;i<9;i++){
                  board3[i][5]=0;	
                }
                for(int i=0;i<9;i++){
                  board4[i][5]=0;	
                }
         }
  
  void win(){
  	if(man.getState()==5){
  	 
  		if((man.getX()>0)
         &&(man.getX()<25)
         &&(man.getY()+21>45)
         &&(man.getY()+21<78)){
         tmpX=0;
         man.setX(tmpX);
         tmpY=54;
         man.setY(tmpY);
         win=true;
        
        
         	
        }
  	 }else if(man.getState()==3){
  	 	
  		if((man.getX()>0)
         &&(man.getX()<17)
         &&(man.getY()+21>45)
         &&(man.getY()+21<78)){
         empty();
         tmpX=0;
         man.setX(tmpX);
         tmpY=54;
         man.setY(tmpY);
         manState=0;
         man.setState(2);
         jumpCan=true;
         	
        }
  	 }
  }
   
   boolean crash(int x,int y,int m,int s,int have){
  	      if(STATE!=1&&STATE!=2){
  	        
            if((man.getX()>x)
               &&(man.getX()<x+img1.getWidth())
               &&(y>man.getY())
               &&(y<man.getY()+man.getHeight()-4)){
               	man.setAlive(false);
               	
               	
               }
               
               if((man.getX()+man.getWidth()>x)
               &&(man.getX()+man.getWidth()<x+img1.getWidth())
               &&(y>man.getY())
               &&(y<man.getY()+man.getHeight()-4)){
               	man.setAlive(false);
               }
               	
           }
              
               if((man.getX()+8>x)
               &&(man.getX()+8<x+21)
               &&(man.getY()+man.getHeight()>=y-30)
               &&(man.getY()+man.getHeight()<y)){
               	   if(man.getState()==3){
                    man.setState(1);
                   }else if(man.getState()==4){
                    man.setState(2);
                   }
               	 
               	 if(have==1){//有障碍
               	  man.setAlive(false);
               	 }else{
               	  if(have==2)
               	  p--;
               	  if(p<0)p=0;
               	 jumpCan=true;
               	 manState=m;
               	 if(s==1){
               	 jumpUD=1;
               	 }else if(s==2){
               	 jumpUD=0;
               	 }else if(s==3){
               	 jumpUD=2;
               	 }else{
               	 jumpUD=10;
               	 }
               	 man.setX(x+2);
               	 man.setY(y-21-speed[m-1]);
               	 }
               	
               	return true;
               }else{
               	return false;
               }
              
              
      	 
        
               
  }
   
   
  void moveLeft(){
  		
	
		v=(int)(v-a*t);
	    s=(int)(v*t);
	 
	    tmpY =man.getY()-s;
	    
	    man.setY(tmpY);
	    tmpX =man.getX()-5;
	    
	    man.setX(tmpX);
	     
	    
	    crash2();  
		  
		    
		    
		    
   }
   
   void moveRight(){
        
	  
	   v=(int)(v-a*t);
	   s=(int)(v*t);
	   
	    tmpY =man.getY()-s;
	    
	    man.setY(tmpY);
	    tmpX =man.getX()+5;
	    
	    man.setX(tmpX);
	    crash2();
   }
   
   void moveUp(){
   	    tmpY=man.getY()-7;
   	    man.setY(tmpY);
   	    
   }
    
   void moveDown(){
   	    tmpY=man.getY()+3;
   	    man.setY(tmpY);
   	    
   }
 void  doMove(){
      for(int i=0;i<9;i++){
      	
      	 if(man.isAlive()&&!jumpCan&&board1[i][5]==0){
      	   
      	     if(board1[i][2]==10||board1[i][2]==11){//如果是可以吃的东西
               if(crash(board1[i][0],board1[i][1], 1,board1[i][4],2)){
               	board1[i][2]=0;
               	empty();
                board1[i][5]=1;
               } 
             }else if(board1[i][2]==0){
               if(crash(board1[i][0],board1[i][1], 1,board1[i][4],0)){
                empty();
            	board1[i][5]=1;
               } 
             }else if(board1[i][2]!=0&&board1[i][2]!=10&&board1[i][2]!=11){
             	if(crash(board1[i][0],board1[i][1], 1,board1[i][4],1)){
                empty();
                board1[i][5]=1;
                }
             }
       }
      	  board1[i][1]=board1[i][1]-speed[0];
      	  if(speed[0]>0){//如果是板子向上运动
      	    if(board1[i][1]<=-69){
      	       board1[i][1]=273;
      	    }
      	  }else{
      	  	if(board1[i][1]>=311){
      	  	   board1[i][1]=-31;
     	  	}
      	  }
      	 
      }
  	 
  	  for(int i=0;i<9;i++){
  	  	  if(man.isAlive()&&!jumpCan&&board2[i][5]==0){
      	     if(board2[i][2]==10||board2[i][2]==11){//如果是可以吃的东西
               if(crash(board2[i][0],board2[i][1], 2,board2[i][4],2)){
               	board2[i][2]=0;
               	empty();
                board2[i][5]=1;
               } 
             }else if(board2[i][2]==0){
               if(crash(board2[i][0],board2[i][1], 2,board2[i][4],0)){
                empty();
            	board2[i][5]=1;
               } 
             }else if(board2[i][2]!=0&&board2[i][2]!=10&&board2[i][2]!=11){
             	if(crash(board2[i][0],board2[i][1], 2,board2[i][4],1)){
                empty();
                board2[i][5]=1;
                }
             }
          }
      	  board2[i][1]=board2[i][1]-speed[1];
      	  if(speed[1]>0){//如果是板子向上运动
      	    if(board2[i][1]<=-69){
      	       board2[i][1]=273;
      	    }
      	  }else{
      	  	if(board2[i][1]>=311){
      	  	   board2[i][1]=-31;
      	  	}
      	  }
         
      	  
      }
  	 
  	  for(int i=0;i<9;i++){
  	  	 if(man.isAlive()&&!jumpCan&&board3[i][5]==0){
      	    if(board3[i][2]==10||board3[i][2]==11){//如果是可以吃的东西
               if(crash(board3[i][0],board3[i][1], 3,board3[i][4],2)){
               	board3[i][2]=0;
               	empty();
                board3[i][5]=1;
               } 
             }else if(board3[i][2]==0){
               if(crash(board3[i][0],board3[i][1], 3,board3[i][4],0)){
                empty();
             	board3[i][5]=1;
               } 
             }else if(board3[i][2]!=0&&board3[i][2]!=10&&board3[i][2]!=11){
             	if(crash(board3[i][0],board3[i][1], 3,board3[i][4],1)){
                empty();
                board3[i][5]=1;
                }
             }
          }
      	  board3[i][1]=board3[i][1]-speed[2];
      	  if(speed[2]>0){
      	    if(board3[i][1]<=-69){
      	       board3[i][1]=273;
      	    }
      	  }else{
      	  	if(board3[i][1]>=311){
      	  	   board3[i][1]=-31;
      	  	}
      	  }
       
      }
  	 
  	 
  	  for(int i=0;i<9;i++){
  	  	
  	  	if(man.isAlive()&&!jumpCan&&board4[i][5]==0){
      	    if(board4[i][2]==10||board4[i][2]==11){//如果是可以吃的东西
               if(crash(board4[i][0],board4[i][1], 4,board4[i][4],2)){
               	board4[i][2]=0;
               	empty();
                board4[i][5]=1;
               } 
             }else if(board4[i][2]==0){
               if(crash(board4[i][0],board4[i][1], 4,board4[i][4],0)){
                empty();
             	board4[i][5]=1;
               } 
             }else if(board4[i][2]!=0&&board4[i][2]!=10&&board4[i][2]!=11){
             	if(crash(board4[i][0],board4[i][1], 4,board4[i][4],1)){
                empty();
                board4[i][5]=1;
                }
             }
          }
      	  board4[i][1]=board4[i][1]-speed[3];
      	  if(speed[3]>0){
      	    if(board4[i][1]<=-69){
      	       board4[i][1]=273;
      	    }
      	  }else{
      	  	if(board4[i][1]>=311){
      	  	   board4[i][1]=-31;
      	  	}
      	  }
      	  
         
      	
      }
  	 
  	 
  	 
  }
    	
  // 	int tmpKey;
	public void run() {
		try {
			switch(gameState) {
				case GAME_START:	
					
					removeCommand(exitCmd);

					
					repaint();
					Thread.sleep(1500);

					
					addCommand(quitCmd);
					if(! isPaused) {
						addCommand(pauseCmd);
					}
					gameState = GAME_PLAYING;
					
				 case GAME_PLAYING:	
					while(!isStopped) {
						//再描绘
				//		if (tmpKey==-6){
							
							man.doMove();
				    ms++;
				 if(ms>10){//一秒执行一次
				    ms=0;
				    second=(second-1)%60;
				    if(second==0){
				      second=59;
                      minute=minute-1;
                      if(minute==0)
                      isGameOver=true;
                    	 
                    }
                    
                   
                 }
						
				   if(jumpCan&&manState!=0){
        	      
        	         tmpY2=man.getY()-speed[manState-1];
        	         man.setY(tmpY2);   
                   }
				   if(man.getY()+man.meLeft.getHeight()<0||man.getY()>128)
       	           man.setAlive(false);	
						
						
					    if(STATE==1&&!jumpCan&&man.isAlive()){
					      moveUp();
					    }
					    
					    if(STATE==2&&!jumpCan&&man.isAlive()){
					      moveDown();
					    }
                     		 
						if(STATE==3&&!jumpCan&&man.isAlive()){
						  moveLeft();
                          
					    }
                      	
					    if(STATE==4&&!jumpCan&&man.isAlive()){
						  moveRight();
					    }
			           
					    doMove();
					  
					    win();
					  
		
						repaint();
				//		this.serviceRepaints();	
				        if(GameOver){
				          p2--;
				          if(p2<1){
				          	isGameOver=true;
				          }else{
				          	Thread.sleep(1500);
				          	Init();
                            GameInit();//重新开始
				          	GameOver=false;
				          }
				        }
						if(isGameOver) {
							removeCommand(pauseCmd);
							removeCommand(resumeCmd);
							removeCommand(quitCmd);
							doGameStop();
							gameState = GAME_END;
							repaint();
							Thread.sleep(2000);
							doTitle();
							break;

						}else {
						//游戏未结束时
							if(win){
							Thread.sleep(2000);
							minute=2;
	              	        second=59;
					        level++;//进入下一关
                            Init();
                            GameInit();
                            win=false;
					        }
						
							Thread.sleep(100);
						}
					//			tmpKey=0;	
					//	}
					}//end while
				break;
			}
      	}catch(Exception e) {}
	}
	
       
          
 
}//end class

⌨️ 快捷键说明

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