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

📄 tkc.java

📁 手机上的坦克大战游戏
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
      int at[] = new int[2];
      
      

      if(v[19] == 0){
        //music(2);
		//敌人或玩家发炮的时候 调用
      }

      
      if(b[1]){
        
        at[1] = v[12];
      }
      else{
        at[1] = v[11];
      }
      
      if(v[7] != 0 && v[9] != 0){
        
        drawImage(image[30],v[24]-v[21],v[25]);//画炮弹
         
        at[0] = v[16]/5;
        v[25]-=((v[19]-=2)+v[20])/4;
        
        
        if(b[1]){
          
          v[24] += at[0];
          if((v[24]) >= 295 && v[28] == 1){
            v[28] = 2;
            v[21] = 240;
          }
          if(v[28] == 1){
            v[21] += at[0];
          }
          if((v[24]-v[21]) >= 55 && v[28] == 0){
            v[28] = 1;
            v[21] += (v[24]-v[21]) - 55;
          }
        }
        else{
          v[24] -= at[0];
          if((v[24]) < 55 && v[28] == 1){
            v[28] = 2;
            v[21] = 0;
          }
          if(v[28] == 1){
            v[21] -= at[0];
          }
          if((v[24]-v[21]) < 55 && v[28] == 0){
            v[28] = 1;
            v[21] -= 55 - (v[24]-v[21]);
          }
        }
      }
      
      
      if(((b[1] ^ b[2]) && !b[11] )){
        
        if( v[24] > 156 && v[24] < 200 && v[25] > 34 && v[25] < 99 && (!b[12])){
          v[29] = 2;
          v[30] = 3;
          b[11] = true;
          b[12] = true;
        }
      }
      
      
      
      if(v[24] > at[1] && (v[24]) < (at[1] + 26) && (v[25]) > 64 && v[25] < 89){
        b[11] = true;
        v[30] = 0;
        if(b[1]){
          v[38]++;
          v[37]++;
        }
      }
      else if( (v[25]) >= 85){
        b[11] = true;
        if((v[24]) < (at[1] + 41) && (v[24] + 14) > at[1] && (v[25]) > 64){
          v[30] = 1;
          if(b[1])
            v[37]++;
        }
        else{
          v[30] = 2;
        }
      }
      
      if(b[11]){
        v[29] = 2;
        if(v[30] == 0 || v[30] == 1){
          int dam = 0;
          
          if(b[1]){
            
            
            dam = (100 + cPara[v[6]][0]*4) - (v[35]/10*10+v[27]);
            
            if(v[30] == 1)
              dam /= 2;
            v[9] -= dam;
            
            if(v[30] == 0){
              if(rnd.nextInt() < 0)
                v[18] = (Math.abs(rnd.nextInt() % 15)) + ((360-v[12])/12);
              else
                v[17] = (Math.abs(rnd.nextInt() % 15)) + ((v[12]-220)/12);
            }
            if(v[9] <= 0){
              if(v[35]<99999)
                v[35]++;
              v[9] = 0;
            }
          }
          else{
            
            dam = (300 + (v[35]/10*10) + v[26]) - (cPara[v[6]][1]*4);
            if(v[30] == 1)
              dam /= 2;
            v[7] -= dam;
            
            v[45] = 0;
            if(v[7] <= 0){
              v[7] = 0;
            }
          }
        }
        else if(!b[1]){
          
          v[45]++;
        }
      }
    }
  }
    
  public void bom(){
    if(b[11] && v[29] >= 0 && (!b[14])){
      v[16] = 0;
      v[19] = 0;
      v[20] = 0;
      if(v[29] == 2){
        int targ=0;
        
        if(!b[1]){
          
          targ = v[11];
          if(v[30] <= 1)
            v[11]-=2;
        }
        else{
          targ = v[12];
          if(v[30] <= 1)
            v[12]+=2;
        }
        
        if(v[30] == 0)
          drawImage(image[31],targ-v[21],65);//画爆炸的图片
        else
          drawImage(image[31],v[24]-11-v[21],v[25]-15);
        
        if(v[9] <= 0){
          drawImage(image[34],20,48);//敌人死时显示的图片destroy
          v[5] = 15;
        }
        if(v[7] <= 0){
          drawImage(image[35],27,48); //玩家死时显示的图片failed
          v[5] = 15;
        }
        //music(3);
      }
      if(v[29] == 1){
        if(v[30] <= 1 && v[9] != 0 && v[7] != 0){
          if(!b[1]){
            
            v[11] += 2;
          }
          else{
            v[12] -= 2;
          }
        }
      }
      if(v[29] == 0){
        if((b[1] && !b[2])){
          
          if(v[9] != 0){
            v[5] = 5;
            v[21] = v[23];
            e_act();
            b[2] = true;
          }
          else{
            b[14] = true;
            b[16] = true;
            b[1] = false;
          }
          v[30] = -1;
        }
        if((b[2] && !b[1])){
          
          v[10]--;
		  //当敌人炮弹碰到物体时
          
          if(v[7] != 0){//如果玩家的血量不为0
            v[21] = v[22];
            v[32] = v[30];
            v[33] = v[24];
            v[34] = v[25];
            b[2] = false;
            b[10] = true;
								
          }
          else{
            if(v[43] < v[35])
			{
             v[43] = v[35]; //估计是保存最高分的
              save_data(); //gwb
			 		 
            }
            
			//当玩家死时执行
            b[15] = true;
            v[2] = 6;
          }
		 }
        b[11] = false;
        v[30] = -1;
      }
      v[29]--;
    }
  }
  
  public void e_act(){

    if(v[45] >= 3){
      v[45] = 0;
      v[15] = 0;
    }
    
    
    if(v[15] == 0){
      int dist = v[12] - v[11];
      if((Math.abs(rnd.nextInt() % 3) != 0)){
        if(rnd.nextInt() < 0){
          v[17] = Math.abs(rnd.nextInt() % 15) * 2;
        }
        else{
          v[18] = Math.abs(rnd.nextInt() % 15) * 2;
        }
      }
      dist = v[12] - (v[17]*2) + (v[18]*2) - v[11];
      
      
      if(dist <= 120){
        v[16] = 2 * (Math.abs(rnd.nextInt() % 4)+10);
      }
      else if(dist <= 180){
        v[16] = 2 * (Math.abs(rnd.nextInt() % 3)+14);
      }
      else if(dist <= 240){
        v[16] = 2 * (Math.abs(rnd.nextInt() % 3)+16);
      }
      else{
        v[16] = 2 * (Math.abs(rnd.nextInt() % 3)+19);
      }
      
      if(dist <= 120){
        v[15] = -6 * (13-Math.abs(rnd.nextInt() % 10));
      }
      else if(dist <= 180){
        v[15] = -6 * (13-Math.abs(rnd.nextInt() % 7));
      }
      else if(dist <= 240){
        v[15] = -6 * (13-Math.abs(rnd.nextInt() % 4));
      }
      else{
        v[15] = -6 * (13-Math.abs(rnd.nextInt() % 3));
      }
    }
    else{
      v[16] = v[31];
      switch(v[30]){
      case 0:
        if(Math.abs(rnd.nextInt() % 3) != 0){
          
        }
        else{
          if(rnd.nextInt() < 0){
            v[16] += 10;
          }
          else{
            v[16] -= 10;
            v[15] -= 12;
          }
        }
        break;
      case 1:
        if(rnd.nextInt() < 0){
          if(rnd.nextInt() < 0){
            v[16] += 6;
            v[15] -= 6;
          }
          else{
            v[16] -= 6;
            v[15] += 6;
          }
        }
        else{
          if(rnd.nextInt() < 0){
            v[16] += 8;
            v[15] -= 6;
          }
          else{
            v[16] -= 4;
            v[15] += 6;
          }
        }
        break;
      case 2:
        if(v[33] < 140){
          if(rnd.nextInt()< 0){
            if(v[11] - 60 > v[33]){
              v[16] -= 6;
            }
            else if(v[33] > (v[11]+30)){
              if(rnd.nextInt() < 0){
                v[16] += 6;
              }
            }
            else{
              if(rnd.nextInt() < 0){
                v[16] -= 4;
                v[15] -= 12;
              }
            }
          }
          else{
            if(rnd.nextInt() < 0){
              v[16] -= 6;
            }
            else{
              v[16] -= 4;
              v[15] += 6;
            }
          }
        }
        else{
          v[16] += 10;
          v[15] -= 12;
        }
        break;
      }
        
      if(v[11] < v[33] && v[17] == 0){
        v[17] = ((v[33] - v[11]) / 2) / (Math.abs(rnd.nextInt() % 2)+1);
      }
      if(v[11] > v[33] && v[18] == 0){
        v[18] = ((v[11] - v[33]) / 2) / (Math.abs(rnd.nextInt() % 2)+1);
      }

      if(v[16] < 10)
        v[16] = 10;
      if(v[16] > 40)
        v[16] = 40;
      if(v[15] > -12)
        v[15] = -12;
      if(v[15] < -78)
        v[15] = -78;
      
    }

    if(v[16] != 0){
      v[20] = (((v[15] / -6)) * 3);
      v[20] = ((v[20]*v[16]*100) / 4000);
      
    }
    
    if(v[15] < -78){
      v[16] = v[16] * (10-(v[15]+78) / -6)/10;
    }
        
    v[31] = v[16];

  }

  
  
  void edge(int kind, int yp){ //画背景图
	
    g.setColor(v[47]);//设置颜色 黑
    
    
	drawImage(image[51],0,0);//左边框
	drawImage(image[51],0,32);
	drawImage(image[51],0,64);
	drawImage(image[51],0,96);
	drawImage(image[51],0,96+32);

	drawImage(image[51],125,0); //右边框
	drawImage(image[51],125,32);
	drawImage(image[51],125,64);
	drawImage(image[51],125,96);
	drawImage(image[51],125,96+32);

	drawImage(image[49],0,0); //上边框
	drawImage(image[50],0,113+45); //下边框


	

    
    switch(kind){
    case 0:
      g.fillRect(3,3,122,110);
     
      break;
    case 1:
      g.fillRect(3,yp,122,40);
      drawImage(image[49],0,yp-3);
      drawImage(image[50],0,yp+40);
      g.setColor(v[48]);
      break;
	  case 2:
	  g.fillRect(3,40,122,yp);
      drawImage(image[49],0,40-3);
      drawImage(image[50],0,100);
      g.setColor(v[48]);
	  break;

    }
  }
  
  
  void music(int s_no){   
    
  }
  
  
  public void resm(){
    if(v[2] == 5){
      if((!b[14]) && b[13]){
        if(b[9] == true){
          v[21] = v[22];
          b[7] = false;
          b[8] = false;
          b[9] = false;
        }
        if(!b[0]){
          //setSoftLabel(0,"音乐有");
        }
        else{
         // setSoftLabel(0,"音乐无");
        }
       // setSoftLabel(1,"返回");
       
        b[3] = false;
        b[4] = false;
        b[5] = false;
        b[6] = false;
        b[14] = true;
        b[16] = true;
      }
    }
  }

  public void showNotify()
 {
 }
 public void hideNotify()
 {

 }


  



  private int load_data() {
	  int size=0;
    try {

      rs = RecordStore.openRecordStore("TankHunter", true);

      if (rs.getNumRecords() != 0) {
		 

        size = rs.getRecordSize(1);
        rs.getRecord(1, rs_data, 0);
        pos = 0;

        tmp1 = (rs_data[pos++] << 24) & 0xff000000;
        tmp2 = (rs_data[pos++] << 16) & 0x00ff0000;
        tmp3 = (rs_data[pos++] << 8) & 0x0000ff00;
        tmp4 = (rs_data[pos++]) & 0x000000ff;
       
		v[43] = (int) (tmp1 | tmp2 | tmp3 | tmp4);

       
        rs.closeRecordStore();

        return size;
      }
      else {
		 		  
        pos = 0;

       
        v[43] = 0;

       
        rs_data[pos++] = (byte) (v[43] >> 24);
        rs_data[pos++] = (byte) ( (v[43] & 0xFF0000) >> 16);
        rs_data[pos++] = (byte) ( (v[43] & 0xFF00) >> 8);
        rs_data[pos++] = (byte) (v[43] & 0xFF);

       	
        rs.addRecord(rs_data, 0, rs_data.length);
		rs.closeRecordStore();

        return 0;
      }
    }
    catch (Exception e) {

      return -1;
    }
  }

  public int save_data() {
   // RecordStore rs;
	

    try {
      rs = RecordStore.openRecordStore("TankHunter", false);
      pos = 0;

      rs_data[pos++] = (byte) (v[43] >> 24);
      rs_data[pos++] = (byte) ( (v[43] & 0xFF0000) >> 16);
      rs_data[pos++] = (byte) ( (v[43] & 0xFF00) >> 8);
      rs_data[pos++] = (byte) (v[43] & 0xFF);

      rs.setRecord(1, rs_data, 0, rs_data.length);		 
		
      rs.closeRecordStore();
	 
      return 0;
    }
    catch (Exception e) {

      return -1;
    }
  }
  
  
  void loadImage()//加载图片
	{
	  for(int i=0;i<image.length;i++)
			{
			  try
				{
				  image[i]=Image.createImage("/tank"+i+".png");
				  lcont+=2;
				  repaint();
					serviceRepaints();
				
				}catch(Exception e)
				{
					e.printStackTrace();
				}
			}

	}
  public int getColorOfRGB(int r,int g,int b) //设置颜色
  {
	  return	(r<<16) | (g<<8) | b;
  }
  public void drawImage(Image img,int x,int y) //画图
  {
	  g.drawImage(img,x,y,g.TOP|g.LEFT);
  }
  public void drawString(String s,int x,int y) //画文字
  {
	  g.drawString(s,x,y,g.TOP|g.LEFT);
  }
  public void setSoftLabel(int i,String ss) //设置 按钮文字
  {
	  if(i!=0)
	  {
		  g.drawString(ss,95+5,96+45,g.TOP|g.LEFT);
	  }
	  else{
		   
		  g.drawString(ss,3,96+45,g.TOP|g.LEFT);
	  }

   }
}



	

⌨️ 快捷键说明

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