亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gamehandle.java

?? 一個小游戲泡泡堂的代碼
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
package game;

import javax.microedition.lcdui.*;
import java.lang.Math;
import java.util.*;

/*
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2005</p>
 * <p>Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class GameHandle extends Canvas {

  public int affairsMsg=0;//行為消息
  public int behaviorMsg=0;//事件消息
	public int nTouchWay = -1;
	public boolean bIsPopMove = false;
	
  Canvas canvas;
  public boolean bIsOverlap = false;
  Bomb.Pop temp = new Bomb.Pop();
  public GameHandle() {

  }

  protected void  paint(Graphics g){
  }

  public void DrawLine(){
    for(int i=0;i<11;i++)
      for(int j = 0;j<13;j++)
        GameManage.g.drawRect(i*16,j*16,16,16) ;
        
  }
  
  
  public class Posit{
    int rIndex,cIndex;
    Posit(int c,int r){
      cIndex =c;
      rIndex =r;
    }
  }
  public Posit[] boobPosit={
      new Posit(0,0),
      new Posit(-1,0),
      new Posit(0,-1),
      new Posit(1,0),
      new Posit(0,1)
  };
  public void InitBoobPosit(){

  }



  
  /*---------------------------------檢測通用類--------------------------------------------*/

  /*---------------------------------------------------------
   //重疊檢測通用模塊,如果和其它人物圖片重疊需要重繪其它人物圖片
   ----------------------------------------------------------*/
  public boolean isOverlap(Role role1,Role role2,Map map){
  
    for(int i = 0;i<4;i++){
      //role1的其中一個點,是否在role2圖象內(nèi)部
			if( role1.imagePoint[i].x > role2.imagePoint[0].x-5 && // 50
					role1.imagePoint[i].y > role2.imagePoint[0].y-5 && // 42
					role1.imagePoint[i].x < role2.imagePoint[2].x+5 &&	// 66
					role1.imagePoint[i].y < role2.imagePoint[2].y+5){	// 60		
					return true;
					}
    }
    return false;
  }

   /*------------------------------------------
   //排序算法通用類,簡單地實現(xiàn),以后需要改進
   --------------------------------------------*/
  public void paintRank(Role role1,Role role2,Map map,boolean flag){
  
  	//一定要更新數(shù)據(jù),否則判斷的依據(jù)是舊的坐標數(shù)據(jù)
  	role1.UpdataAll();
  	role2.UpdataAll();
  	
    if(isOverlap(role1,role2,map)){//有重疊要畫兩個人物
	      if(role2.y<role1.y){
  		  		if( role2.nCurrentMsg >= Role.MSG_DEAD ){      		
      					role2.paintImage(GameManage.g,
            										role2.x,
            										role2.y,
            										role2.imgDeath,//繪制死亡      
                           			role2.btDeathTotalCol,//role.btDeathTotalRow,
                          			role2.btDeathTotalRow,//role.btDeathTotalCol,                      
							                	role2.btDeathCurrentIndex);       
						}else{
								role2.paint(GameManage.g);//先畫其它人
						}							
				    role1.paint(GameManage.g);//再畫自己        
				    
      	}else{
      			role1.paint(GameManage.g);//先畫自己
      			
	      		if(role2.nCurrentMsg >= Role.MSG_DEAD ){      		
      					role2.paintImage(GameManage.g,
            										role2.x,
            										role2.y,
            										role2.imgDeath,//繪制死亡      
                           			role2.btDeathTotalCol,//role.btDeathTotalRow,
                          			role2.btDeathTotalRow,//role.btDeathTotalCol,                      
							                	role2.btDeathCurrentIndex);       
						}else{
        				role2.paint(GameManage.g);//再畫其它人			
        		}
        
        
      } 
          
    }else{//無重疊只畫一個人物
				if(flag)    			
          role1.paint(GameManage.g);
    }
    
  }

  /*-----------------------
   //繪背景地圖通用模塊,但以后得改進
   ------------------------*/
   
  public void   drawBackground(Role role,Role role2,Map map){//畫人物當(dāng)前所在的背景地圖
   	role.UpdataAll();
    //左上角一定要繪。
    map.paintFloor(GameManage.g,
                   role.imagePoint[0].row,
                   role.imagePoint[0].col);
    map.paintBuild(GameManage.g,
                   role.imagePoint[0].row,
                   role.imagePoint[0].col);

				
    //若人物圖片占了兩行以上,則畫同列下一行的地圖
    if(role.imagePoint[0].row != role.imagePoint[3].row){
    	map.paintFloor(GameManage.g,
                   role.imagePoint[3].row,
                   role.imagePoint[3].col);
    	map.paintBuild(GameManage.g,
                   role.imagePoint[3].row,
                   role.imagePoint[3].col);
      if( role.imagePoint[3].row - role.imagePoint[0].row == 2 ){//人物圖占了三行
      	map.paintFloor(GameManage.g,
                   role.imagePoint[3].row-1,
                   role.imagePoint[3].col);
        map.paintBuild(GameManage.g,
                   role.imagePoint[3].row-1,
                   role.imagePoint[3].col);        
      }
    }
    //若人物圖片占了兩列以上,則畫同行下一列的地圖
    if(role.imagePoint[0].col != role.imagePoint[1].col){
    	map.paintFloor(GameManage.g,
                   role.imagePoint[1].row,
                   role.imagePoint[1].col);
    	map.paintBuild(GameManage.g,
                   role.imagePoint[1].row,
                   role.imagePoint[1].col);
      
    }
    //若人物圖片同占了兩行兩列以上,則畫下一列下一行的地圖
    if(role.imagePoint[0].row != role.imagePoint[3].row &&
    		role.imagePoint[0].col != role.imagePoint[1].col){
    	map.paintFloor(GameManage.g,
                   role.imagePoint[2].row,
                   role.imagePoint[2].col);
    	map.paintBuild(GameManage.g,
                   role.imagePoint[2].row,
                   role.imagePoint[2].col);    
    	if( role.imagePoint[3].row - role.imagePoint[0].row == 2 ){//人物圖占了三行
      	map.paintFloor(GameManage.g,
                   role.imagePoint[2].row-1,
                   role.imagePoint[2].col);
        map.paintBuild(GameManage.g,
                   role.imagePoint[2].row-1,
                   role.imagePoint[2].col);        
      }               
                   
    }
  }

  /*---------------------
  	//通用函數(shù),移植較高
   	//0表示左上,1表示右上,2表示右下,3表示左下.
		//nTouchWay 表示碰撞方向,可被nearlyMove引用 
   ----------------------*/
  public boolean TouchCheck(int msg,Role r,Map m){//碰撞函數(shù)
  	
    switch(msg){//GameCheck.behaviorMsg ){
      case Role.MSG_UP_MOVE:{
      		if(m.byBuild[r.touchPoint[0].row][r.touchPoint[0].col]>0||
        	m.byBuild[r.touchPoint[1].row][r.touchPoint[1].col]>0){//上邊有碰撞       
        			if((m.byBuild[r.touchPoint[1].row][r.touchPoint[1].col] == 9 ||
          		m.byBuild[r.touchPoint[1].row][r.touchPoint[1].col] == 9 ) &&
          		bIsPopMove == false){
          				//if(r.RoleType ==Role.PLAYER){
           						bIsPopMove = true;           				
          						nTouchWay = 0;
          				//}
          		}          		
          		return true;
        	}
      }break;
        
      case Role.MSG_LEFT_MOVE:{
        	if(m.byBuild[r.touchPoint[0].row][r.touchPoint[0].col]>0||
        	m.byBuild[r.touchPoint[3].row][r.touchPoint[3].col]>0){//左邊有碰撞                   
          		if((m.byBuild[r.touchPoint[0].row][r.touchPoint[0].col] == 9 ||
          		m.byBuild[r.touchPoint[3].row][r.touchPoint[3].col] == 9)	&&
          		bIsPopMove == false ){
           				//if(r.RoleType ==Role.PLAYER){
           						bIsPopMove = true;
          						nTouchWay = 1;
          				//}
          		}          		
          		return true;
    			}
    	}break;    
            
      case Role.MSG_DOWN_MOVE:{
        	if(m.byBuild[r.touchPoint[2].row][r.touchPoint[2].col]>0||
        	m.byBuild[r.touchPoint[3].row][r.touchPoint[3].col]>0){//下邊有碰撞          
          		if((m.byBuild[r.touchPoint[2].row][r.touchPoint[2].col] == 9 ||
           		m.byBuild[r.touchPoint[3].row][r.touchPoint[3].col] == 9 ) &&
           		bIsPopMove == false){
           				//if(r.RoleType ==Role.PLAYER){
           						bIsPopMove = true;
           						nTouchWay = 2;
           				//}
           		}          	
          		return true;
      		}
      }break;
        
      case Role.MSG_RIGHT_MOVE:{
        	if(m.byBuild[r.touchPoint[1].row][r.touchPoint[1].col]>0||
        	m.byBuild[r.touchPoint[2].row][r.touchPoint[2].col]>0){//右邊有碰撞               
    	    		if((m.byBuild[r.touchPoint[1].row][r.touchPoint[1].col] == 9 ||
           		m.byBuild[r.touchPoint[2].row][r.touchPoint[2].col] == 9 ) &&
           		bIsPopMove == false){
           				//if(r.RoleType ==Role.PLAYER){
           						bIsPopMove = true;
           						nTouchWay	= 3;
           				//}           				
           		}          					
          		return true;
      		}
      }break;
    
    }
    
		//nTouchWay = -1;
    return false;
    
  }


   /*--------------------------------------
   //泡泡專用函數(shù),后期未必用得到,
   ----------------------------------------*/

  //得到放泡泡的位置
  public int getPutPaopRow(Role role,Map map){
  
  	
    if(role.touchPoint[0].row == role.touchPoint[3].row )
      return role.touchPoint[0].row;
    int lenth = Math.abs(role.touchPoint[0].y  - map.mapPosit[role.touchPoint[0].row][1].iy);
    int lenth2 = Math.abs(role.touchPoint[3].y - map.mapPosit[role.touchPoint[0].row][1].iy);
    if(lenth >lenth2){    	      return role.touchPoint[0].row;
    }else{    	    	
      return role.touchPoint[3].row;
    }

  }

  public int getPutPaopCol(Role role,Map map){
  
    if(role.touchPoint[0].col == role.touchPoint[1].col )
      return role.touchPoint[0].col;  
    int lenth = Math.abs(role.touchPoint[0].x  - map.mapPosit[1][role.touchPoint[1].col].ix);
    int lenth2 = Math.abs(role.touchPoint[1].x  - map.mapPosit[1][role.touchPoint[1].col].ix);;
    if(lenth >lenth2){
      return role.touchPoint[0].col;
    }else{
      return role.touchPoint[1].col;
    }

  }


 	public void   RoleHandleProcess(int msg,Role role,Role role2,Role role3,Map map){//人物動作處理類
 		   		 
 	
   
      //消息處理
      switch (msg) {
        case Role.MSG_UP_MOVE:{//人物上移消息
          drawBackground(role,role2, map);//畫背景
          role.UpMove();//移動算法
          if (TouchCheck(msg,role, map)) {
            role.RecoverData();//若有碰撞不能移動,則恢復(fù)數(shù)據(jù)                        
          }
          paintRank(role,role2,map,true);//排序繪圖
          paintRank(role,role3,map,false);
          GameManage.bIsRoleMsg = false;//禁止重畫
        }break;
        
        case Role.MSG_LEFT_MOVE:{//人物左移消息
          drawBackground(role,role2,map);
          role.LeftMove();
          if (TouchCheck(msg,role, map)) {
            role.RecoverData();            
          }
          paintRank(role,role2,map,true);//排序繪圖
          paintRank(role,role3,map,false);
          GameManage.bIsRoleMsg = false;//禁止重畫
        }break;
        
        case Role.MSG_DOWN_MOVE:{//人物下移消息
          drawBackground(role,role2,map);
          role.DownMove();
          if (TouchCheck(msg,role, map)) {
            role.RecoverData();         
          }
          paintRank(role,role2,map,true);//排序繪圖
          paintRank(role,role3,map,false);
          GameManage.bIsRoleMsg = false;//禁止重畫
        }break;
        
        case Role.MSG_RIGHT_MOVE:{//人物右移消息
          drawBackground(role,role2,map);
          role.RightMove();
          if (TouchCheck(msg,role, map)) {
            role.RecoverData();            
          }
          paintRank(role,role2,map,true);//排序繪圖
          paintRank(role,role3,map,false);
          GameManage.bIsRoleMsg = false;//禁止重畫
        }break;
        
        case Bomb.MSG_DOING:{//泡泡啟動消息   
       			int row = getPutPaopRow(role, map);//得到人物當(dāng)前行列       			
            int col = getPutPaopCol(role, map);
            role.bomb.nBlastNum++;//泡泡爆炸數(shù)加一            
            Bomb.Pop p = new Bomb.Pop();//新的泡泡
            role.bomb.createPopQueue(p);//創(chuàng)建pop隊列          	
            p.amSwell.ix = map.mapPosit[row][col].ix;//建立在人物所在的坐標
            p.amSwell.iy = map.mapPosit[row][col].iy;
            p.amSwell.btAtCol = (byte)col;//建立在人物所在的行列
            p.amSwell.btAtRow = (byte)row;
            p.amBlast.ix = map.mapPosit[row][col].ix;//建立在人物所在的坐標
            p.amBlast.iy = map.mapPosit[row][col].iy;
            p.amBlast.btAtCol = (byte)col;//建立在人物所在的行列
            p.amBlast.btAtRow = (byte)row;
            p.btCurrentMsg =  p.MSG_SWELL;//泡泡狀態(tài)改變
            role.bomb.popQueue.addElement(p);//泡泡隊列增加
            role.bomb.popQueue.insertElementAt(p,0);//role.bomb.nBlastNum);
            role.nCurrentMsg  = Role.MSG_NOTHING;
            GameManage.bIsRoleMsg = false;//禁止重畫 
				}break;
				
				case Role.MSG_DEAD:{//死亡
					
						if (++role.nDeathRunTime%15 ==0){
						
								drawBackground(role,role2,map);//畫背景

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频超级精品| 亚洲高清视频中文字幕| 国产精品99久久久久久似苏梦涵 | 视频一区中文字幕| 欧美一区二区三区在线观看| 青青草国产精品97视觉盛宴| 日韩色视频在线观看| 美女网站在线免费欧美精品| 日韩亚洲欧美综合| 国产九九视频一区二区三区| 国产精品日韩精品欧美在线| 97精品电影院| 日韩经典中文字幕一区| 精品国产伦一区二区三区观看体验| 国产乱码精品1区2区3区| 中文字幕成人在线观看| 在线亚洲欧美专区二区| 奇米四色…亚洲| 久久久久久久久久久黄色| 国产1区2区3区精品美女| 亚洲三级免费电影| 7777精品伊人久久久大香线蕉完整版 | 欧美日韩一级片网站| 日韩电影免费在线观看网站| 久久久综合精品| 91久久精品日日躁夜夜躁欧美| 亚洲成av人片在线| 久久久久综合网| 91啪亚洲精品| 美日韩一区二区| 自拍偷自拍亚洲精品播放| 欧美一区二区三区在| av一区二区不卡| 青草av.久久免费一区| 中文字幕亚洲在| 日韩一卡二卡三卡| 91成人在线免费观看| 激情伊人五月天久久综合| 亚洲视频一二三区| 精品国产一区久久| 欧美在线看片a免费观看| 国产乱人伦精品一区二区在线观看| 亚洲在线一区二区三区| 久久综合久久综合九色| 欧美色视频在线| 91在线视频观看| 国产乱色国产精品免费视频| 午夜精品成人在线视频| 亚洲色图色小说| 久久久综合九色合综国产精品| 欧美日韩国产另类不卡| 99久久久免费精品国产一区二区| 久久精品国产**网站演员| 一区二区三区免费看视频| 国产亲近乱来精品视频| 日韩一二三区视频| 欧美精品日韩综合在线| 91网址在线看| 高清久久久久久| 激情综合网av| 日本欧美一区二区在线观看| 亚洲黄色av一区| 亚洲男同性视频| 国产精品久久免费看| 久久婷婷成人综合色| 日韩欧美第一区| 51精品久久久久久久蜜臀| 欧美亚洲综合色| 欧美亚洲禁片免费| 色丁香久综合在线久综合在线观看| 国产成人精品三级麻豆| 国产一区 二区 三区一级| 久久国产精品99久久人人澡| 青青草成人在线观看| 蜜臀久久99精品久久久画质超高清| 亚洲第一福利视频在线| 亚洲与欧洲av电影| 午夜天堂影视香蕉久久| 亚洲福中文字幕伊人影院| 亚洲小说欧美激情另类| 亚洲h在线观看| 五月天欧美精品| 日韩国产欧美一区二区三区| 婷婷激情综合网| 秋霞午夜鲁丝一区二区老狼| 午夜视频一区二区三区| 秋霞国产午夜精品免费视频| 麻豆精品一二三| 极品少妇xxxx偷拍精品少妇| 国产精品99久久久久久似苏梦涵| 国产成人精品免费网站| 成人高清免费在线播放| 日本韩国一区二区三区| 欧美日韩色一区| 这里只有精品电影| 日韩欧美另类在线| 久久这里只有精品视频网| 欧美激情中文字幕| 亚洲精品日韩专区silk| 香蕉成人啪国产精品视频综合网| 日韩成人午夜电影| 国产99精品在线观看| 91麻豆免费视频| 91精品国产综合久久久久久久 | 亚洲综合久久av| 日韩国产在线观看一区| 国模大尺度一区二区三区| 成人一道本在线| 欧美色精品天天在线观看视频| 日韩精品一区二区三区老鸭窝| 国产日产欧美一区| 一区二区三区视频在线观看| 日本中文字幕不卡| 国产二区国产一区在线观看| 91在线精品一区二区| 日韩一区二区精品葵司在线| 国产精品入口麻豆九色| 午夜久久久久久| 成人97人人超碰人人99| 欧美高清视频在线高清观看mv色露露十八 | 亚洲精品一区在线观看| 欧美国产1区2区| 亚洲成人av福利| 福利视频网站一区二区三区| 欧美色欧美亚洲另类二区| 欧美国产精品一区二区| 日本中文字幕一区| 色婷婷av一区二区三区大白胸| 欧美一级电影网站| 亚洲精品久久久久久国产精华液| 看国产成人h片视频| 91色在线porny| 精品88久久久久88久久久| 午夜视频一区二区三区| 91浏览器打开| 2024国产精品| 日韩精品色哟哟| 在线视频欧美精品| 日韩理论片网站| 国产精品一区三区| 日韩免费观看高清完整版 | 专区另类欧美日韩| 国产精品伊人色| 欧美电影免费观看完整版| 一级精品视频在线观看宜春院 | 91福利国产成人精品照片| 欧美国产欧美亚州国产日韩mv天天看完整 | 粉嫩aⅴ一区二区三区四区五区| 欧美精品视频www在线观看| 亚洲精品亚洲人成人网在线播放| 国产成人精品午夜视频免费| 日韩午夜av电影| 免费在线观看不卡| 欧美乱妇20p| 亚洲一区二区成人在线观看| 色综合天天综合给合国产| 中文字幕欧美日本乱码一线二线| 国内精品国产成人国产三级粉色 | 一区二区久久久久| 99在线精品观看| 中文字幕一区二区三区在线播放 | 色综合久久天天| 国产精品久久久久久久久免费桃花 | 国产成人午夜99999| 欧美精品一区二区三区在线播放 | 1区2区3区国产精品| 成人在线视频一区| 中文在线免费一区三区高中清不卡| 韩国理伦片一区二区三区在线播放 | 国产精品影视网| 久久精品视频免费| 成人午夜av在线| 18欧美亚洲精品| 色婷婷综合五月| 亚洲一区二区三区四区五区中文| 在线观看免费一区| 午夜精品久久一牛影视| 欧美一级片在线看| 极品少妇xxxx精品少妇| 国产女同性恋一区二区| av成人免费在线观看| 亚洲蜜臀av乱码久久精品| 欧美午夜一区二区三区| 奇米色777欧美一区二区| 精品国产免费人成电影在线观看四季 | 风流少妇一区二区| 亚洲欧洲在线观看av| 欧美视频一区二区三区在线观看 | 日本成人在线不卡视频| 欧美一区二区三区系列电影| 国产一区二区精品在线观看| 国产精品妹子av| 欧美亚州韩日在线看免费版国语版| 首页国产欧美久久| 国产亚洲一区二区三区四区| 99久久精品国产一区二区三区 | 美国一区二区三区在线播放| 国产日韩亚洲欧美综合| 欧美性色黄大片手机版| 激情深爱一区二区|