📄 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){
//获得爆炸的当前图片序列
int nCurrentRow = role.bomb.bombPosit[i].row +//当前泡泡所在行
boobPosit[nCurrentFrame].rIndex;//爆炸图片行的偏移量
int nCurrentCol = role.bomb.bombPosit[i].col+//当前泡泡所在行
boobPosit[nCurrentFrame].cIndex;//爆炸图片列的偏移量
//求出爆炸坐标
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,
//当前爆炸图帧的行偏移
role.bomb.bombPosit[index].row + boobPosit[i].rIndex,
//当前爆炸图帧的列偏移
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,
//当前爆炸图帧的行偏移
role.bomb.bombPosit[index].row + boobPosit[i].rIndex,
//当前爆炸图帧的列偏移
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);
//获得当前行列坐标
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){//爆炸动画
//因为已经在爆炸,所以已经不是建筑层可以通过了,设为地面层
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){//设置死亡状态
//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) {//如果人物已经处于死亡状态
//被炸动画
if(++role.bomb.test%4==0){//时间间隔每5倍的时间数执行一次.
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);
//泡泡的三种状态,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); //设置人物为炸状态
//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;
}*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -