?? gamehandle.java
字號:
m.mapPosit[row][i].iy,
r.bomb.imgBlast,//繪制爆炸
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.btCurrentIndex);
checkDeath(r,m,row,i);//check death
checkDeath(c,m,row,i);
checkDeath(c2,m,row,i);
}break;
case 4:{
r.bomb.paintImage(GameManage.g,//繪圖
m.mapPosit[row+1][col].ix,
m.mapPosit[row+1][col].iy,
r.bomb.imgBlast,//繪制爆炸
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.btCurrentIndex);
checkDeath(r,m,row+1,col);//check death
checkDeath(c,m,row+1,col);
checkDeath(c2,m,row+1,col);
}break;
}
}
if( ((Bomb.Pop) r.bomb.popQueue.elementAt(0)).amBlast.btAtRow != 8 &&
((Bomb.Pop) r.bomb.popQueue.elementAt(0)).amBlast.btAtRow != 1 ){//left right的泡泡
System.out.println("left right");
switch( nCurrentFrame ){
case 0:{
r.bomb.paintImage(GameManage.g,//繪圖
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.ix,
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.iy,
r.bomb.imgBlast,//繪制爆炸
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.btCurrentIndex);
checkDeath(r,m,row,col);//check death
checkDeath(c,m,row,col);
checkDeath(c2,m,row,col);
}break;
case 1:{
r.bomb.paintImage(GameManage.g,//繪圖
m.mapPosit[row][col-1].ix,
m.mapPosit[row][col-1].iy,
r.bomb.imgBlast,//繪制爆炸
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.btCurrentIndex);
checkDeath(r,m,row,col-1);//check death
checkDeath(c,m,row,col-1);
checkDeath(c2,m,row,col-1);
}break;
case 2:{
int i;
for(i=row-1;i>1;i--){//7列到1列長的爆炸
r.bomb.paintImage(GameManage.g,
m.mapPosit[i][col].ix,
m.mapPosit[i][col].iy,
r.bomb.imgBlast,
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
1);
checkDeath(r,m,i,col);//check death
checkDeath(c,m,i,col);
checkDeath(c2,m,i,col);
}
r.bomb.paintImage(GameManage.g,//繪圖
m.mapPosit[i][col].ix,
m.mapPosit[i][col].iy,
r.bomb.imgBlast,//繪制爆炸
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.btCurrentIndex);
checkDeath(r,m,i,col);//check death
checkDeath(c,m,i,col);
checkDeath(c2,m,i,col);
}break;
case 3:{
r.bomb.paintImage(GameManage.g,//繪圖
m.mapPosit[row][col+1].ix,
m.mapPosit[row][col+1].iy,
r.bomb.imgBlast,//繪制爆炸
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.btCurrentIndex);
checkDeath(r,m,row,col+1);//check death
checkDeath(c,m,row,col+1);
checkDeath(c2,m,row,col+1);
}break;
case 4:{
int i;
for(i=row+1;i<8;i++){//7列到1列長的爆炸
r.bomb.paintImage(GameManage.g,
m.mapPosit[i][col].ix,
m.mapPosit[i][col].iy,
r.bomb.imgBlast,
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
1);
checkDeath(r,m,i,col);//check death
checkDeath(c,m,i,col);
checkDeath(c2,m,i,col);
}
r.bomb.paintImage(GameManage.g,//繪圖
m.mapPosit[i][col].ix,
m.mapPosit[i][col].iy,
r.bomb.imgBlast,//繪制爆炸
r.bomb.btBalstTotalRow,
r.bomb.btBalstTotalCol,
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.btCurrentIndex);
checkDeath(r,m,i,col);//check death
checkDeath(c,m,i,col);
checkDeath(c2,m,i,col);
}break;
}
}
}
public void checkPopMove(Role r,Map m){
int i=0,j=0;
int lenth =r.bomb.nBalstImgWidth;
int row = ((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.btAtRow;
int col = ((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.btAtCol;
System.out.println("r="+((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.btAtRow);
System.out.println("nTouchWay="+nTouchWay);
switch(nTouchWay){
case 0:{
for(i=row;i>0;i--){
if(m.byBuild[i-1][col]>0){
if(i==row)
{ bIsPopMove = false; return; }
else
break;
}
}
m.setLayer(i,col,(byte)9);
m.setLayer(row,col,(byte)0);
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.iy=m.mapPosit[i][col].iy;
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.iy=m.mapPosit[i][col].iy;
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.btAtRow=(byte)i;
}break;
case 1:{
for(i=col;i>0;i--){
if(m.byBuild[row][i-1]>0){
if(i==col)
{ bIsPopMove = false; return; }
else
break;
}
}
m.setLayer(row,i,(byte)9);
m.setLayer(row,col,(byte)0);
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.ix=m.mapPosit[row][i].ix;
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.ix=m.mapPosit[row][i].ix;
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.btAtCol=(byte)i;
}break;
case 2:{
for(i=row;i<10;i++){
if(m.byBuild[i+1][col]>0){
if(i==row)
{ bIsPopMove = false; return; }
else
break;
}
}
m.setLayer(i,col,(byte)9);
m.setLayer(row,col,(byte)0);
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.iy = m.mapPosit[i][col].iy;
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.iy = m.mapPosit[i][col].iy;
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.btAtRow = (byte)i;
}break;
case 3:{
System.out.println("begin");
System.out.println("build"+m.byBuild[row][col+1]);
for(i=col;i<10;i++){
if(m.byBuild[row][i+1]>0){
System.out.println("build..."+m.byBuild[row][col+1]);
System.out.println("build---"+m.byBuild[row][i+1]);
System.out.println("col"+col);
System.out.println("i"+i);
if(i==col)
{ bIsPopMove = false; return; }
else
break;
}
}
m.setLayer(row,i,(byte)9);
m.setLayer(row,col,(byte)0);
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.ix = m.mapPosit[row][i].ix;
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amBlast.ix = m.mapPosit[row][i].ix;
((Bomb.Pop)r.bomb.popQueue.elementAt(0)).amSwell.btAtCol = (byte)i;
System.out.println("end");
System.out.println("i="+i);
}break;
}
bIsPopMove = false;
return;
}
public void popMove(){
//
}
/*------------------------
//泡泡爆炸圖
--------------------------*/
/*
public void UpdataBoobPosit(int i,int nCurrentFrame,Role role,Map map){
//獲得爆炸的當(dāng)前圖片序列
int nCurrentRow = role.bomb.bombPosit[i].row +//當(dāng)前泡泡所在行
boobPosit[nCurrentFrame].rIndex;//爆炸圖片行的偏移量
int nCurrentCol = role.bomb.bombPosit[i].col+//當(dāng)前泡泡所在行
boobPosit[nCurrentFrame].cIndex;//爆炸圖片列的偏移量
//求出爆炸坐標(biāo)
role.bomb.ix = map.mapPosit[nCurrentRow][nCurrentCol].ix;
role.bomb.iy = map.mapPosit[nCurrentRow][nCurrentCol].iy;
}*/
/*---------------------------
//泡泡爆炸后所做的處理
----------------------------*/
/*
public void PaopBoodEnd(int index,Role role,Map map){
int boobNum = 5;
try{
for (int i = 0; i <= boobNum; i++) {
System.out.println("aaaaaaaaaa:"+i+i+i+i+i);
if (map.byBuild[role.bomb.bombPosit[index].row + boobPosit[i].rIndex]
[role.bomb.bombPosit[index].col + boobPosit[i].cIndex] <= 0) {
map.paintFloor(GameManage.g,
//當(dāng)前爆炸圖幀的行偏移
role.bomb.bombPosit[index].row + boobPosit[i].rIndex,
//當(dāng)前爆炸圖幀的列偏移
role.bomb.bombPosit[index].col + boobPosit[i].cIndex);
map.setLayer(role.bomb.bombPosit[index].row + boobPosit[i].rIndex,
role.bomb.bombPosit[index].col + boobPosit[i].cIndex,
(byte) - 1);
} else {
map.paintBuild(GameManage.g,
//當(dāng)前爆炸圖幀的行偏移
role.bomb.bombPosit[index].row + boobPosit[i].rIndex,
//當(dāng)前爆炸圖幀的列偏移
role.bomb.bombPosit[index].col + boobPosit[i].cIndex);
}
}
}catch(Exception e){
System.out.println("hehe error in here:" + e.toString());
}
}*/
/*
public void drawBomb(int i,Role role,Map map){//畫泡泡
//畫背景
map.paintFloor(GameManage.g, role.bomb.bombPosit[i].row, role.bomb.
bombPosit[i].col);
//獲得當(dāng)前行列坐標(biāo)
role.bomb.ix = map.mapPosit[role.bomb.bombPosit[i].row][role.bomb.
bombPosit[i].col].ix;
role.bomb.iy = map.mapPosit[role.bomb.bombPosit[i].row][role.bomb.
bombPosit[i].col].iy;
//繪圖
role.bomb.bombPosit[i].frameNum++;
role.bomb.paintPutBomb(i, GameManage.g);
//換下一幀圖片
role.bomb.nextPutFrame(i);
}*/
/*
public void drawBoob(int i,Role role,Map map){//爆炸動畫
//因為已經(jīng)在爆炸,所以已經(jīng)不是建筑層可以通過了,設(shè)為地面層
map.setLayer(role.bomb.bombPosit[i].row, role.bomb.bombPosit[i].col,
(byte) - 1);
System.out.println("aaaaaaaaaaaaaaaaaaaaa");
//更新泡泡爆炸圖片的繪制位置,
UpdataBoobPosit(i, role.bomb.bombPosit[i].btCurrentSequenceFrame2,
role, map);
System.out.println("bbbbbbbbbbbbbbbbbbbbbb");
//在更新的位置上繪制爆炸圖
role.bomb.paintBoobBomb(i, GameManage.g);
System.out.println("cccccccccccccccccccccc");
role.bomb.nextBoobFrame(i);
System.out.println("ddddddddddddddddddddddd");
}
*/
public void SetDead(Role role,Map map){//設(shè)置死亡狀態(tài)
//role.bomb.bIsDead = true;
//role.bomb.SetXRole(role.x);
//role.bomb.SetYRole(role.y);
//role.bomb.Pop.MSG_END = Bomb.Pop.MSG_END;
}
/*
public void drawDead(Role role,Map map){//死亡動畫
role.bomb.paintDead(GameManage.g);
role.bomb.nextDeadFrame();
}
*/
//--------------------------
//泡泡動作處理類------------------------
/*
public void PaopHandleProcess(Role role,Role cpt,Map map){
if (role.bomb.bIsDead&&!role.bomb.bIsBombEnd) {//如果人物已經(jīng)處于死亡狀態(tài)
//被炸動畫
if(++role.bomb.test%4==0){//時間間隔每5倍的時間數(shù)執(zhí)行一次.
this.drawBackground(role,cpt,map);
drawDead(role,map);//人物死亡的動畫顯示
}
}
try{
for (int i = 0; i < role.bomb.nPaopNum; i++) {
System.out.println("fn-----------" + i + "-------------" +
role.bomb.bombPosit[i].frameNum);
//泡泡的三種狀態(tài),1.泡泡爆炸前的動畫處理,2.泡泡爆炸中的動畫處理,3.泡泡爆炸后的動畫外理;
if (role.bomb.bombPosit[i].nIsBoobEnd) { //3.泡泡爆炸后
System.out.println("1---------");
//爆炸后的圖片處理
try{
PaopBoodEnd(i, role, map);
}catch(Exception e){
System.out.println("hehe in here:"+e.toString());
}
drawDead(role, map);
} else if (role.bomb.bombPosit[i].frameNum >= Bomb.nBoobNum) { //2.泡泡爆炸中,是爆炸的時候了.
System.out.println("2---------");
drawBoob(i, role, map); //畫爆炸動畫
if (role.bomb.iCurrentMsg == role.bomb.MSG_PUT_BOMB &&
checkBoob(i, role, map)) { //檢測被炸,如果人物被炸
SetDead(role, map); //設(shè)置人物為炸狀態(tài)
//drawBackground(role,map);midi.
}
} else { //1.泡泡爆炸前
System.out.println("3---------");
drawBomb(i, role, map); //畫泡泡
} //end if
} //end for
}catch(Exception e){
System.out.println("in here:"+e.toString());
}
GameManage.bIsPaopMsg = false;
}*/
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -