?? man.java
字號(hào):
}
public void changelevel(int levelHeight)
{
level_change++;
if (level_change/levelHeight == 1)
{
level_change = 0;
level++;
}
}
public void scrollside(int chg_side,int max_chg)
{
position_side_y = position_side_y - chg_side;
if (position_side_y < -max_chg)
position_side_y = 0;
}
public void objup(int chg_obj_y)
{
for(int i=0;i<16;i++)
{
//坐標(biāo)減小,物體上移
position_obj_y[i] = position_obj_y[i] - chg_obj_y;
//使物體坐標(biāo)循環(huán)出現(xiàn)
if (position_obj_y[i] < 15)
{
Int_tmp[i] = (rnd.nextInt() >>> 1)%6;
if (i == 0 )
{
position_obj_y[0] = position_obj_y[15] + 30;
Int_tmp[0] = (rnd.nextInt() >>> 1) % 6;
}
else
{
position_obj_y[i] = position_obj_y[i-1] + 30;
Int_tmp[i] = (rnd.nextInt() >>> 1) % 6;
}
position_obj_x[i] = SIDE_WIDTH + (rnd.nextInt() >>> 1)%(SCREEN_WIDTH/12-1)*12;
if (position_obj_x[i]>SCREEN_WIDTH - OBJ_WIDTH - SIDE_WIDTH)
{
position_obj_x[i] = position_obj_x[i] - OBJ_WIDTH - SIDE_WIDTH;
}
}
}
}
//畫屏幕
public void paint(Graphics graphics)
{
graphics.setColor(0,0,0);
graphics.fillRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
graphics.clipRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT);
graphics.setColor(255,0,0);
graphics.drawString("生命: "+life,10,0,Graphics.LEFT|Graphics.TOP);
graphics.drawString("層數(shù): "+level,70,0,Graphics.LEFT|Graphics.TOP);
if(isgameover)
{
level_change = level;
graphics.drawString("Game Over",SCREEN_WIDTH/2, SCREEN_HEIGHT*1/3, Graphics.TOP|Graphics.HCENTER);
graphics.drawString("層數(shù): "+level_change,SCREEN_WIDTH/2, SCREEN_HEIGHT*1/3+20, Graphics.TOP|Graphics.HCENTER);
}
else
{
//顯示物體
for(int i=0;i<16;i++)
{
draw_obj(graphics, I_obj1, Int_tmp[i], position_obj_x[i], position_obj_y[i]);
}
}
//頂端 左側(cè) 右側(cè)
for(int i=0;i<SCREEN_WIDTH/8+1;i++)
{
game.MydrawRegion(graphics,I_top,0,0,8*i,14,8,8);
}
for(int i=0;i<SCREEN_HEIGHT/16+1;i++)
{
game.MydrawRegion(graphics,I_side,0,0,0,position_side_y + SIDE_HEIGHT * i,SIDE_WIDTH,SIDE_HEIGHT);
game.MydrawRegion(graphics,I_side, SIDE_WIDTH, 0, SCREEN_WIDTH - SIDE_WIDTH, position_side_y + SIDE_HEIGHT * i,SIDE_WIDTH,SIDE_HEIGHT);
}
gameover();
checkman(graphics);
checkposition(graphics, 2, (MAN_MOV_Y + OBJ_MOV)/2, MAN_MOV_Y);
checktop(16, 3, MAN_MOV_Y);
checkbottom(SCREEN_HEIGHT,MAN_MOV_Y);
checkside();
serviceRepaints();
}
//檢查狀態(tài)以顯示小人狀態(tài)
public void checkman(Graphics graphics)
{
if (directionup == 0)
{
switch(direction)
{
case 0:
game.MydrawRegion(graphics,I_man,8 * MAN_WIDTH,directionhit *16, position_man_x,position_man_y, MAN_WIDTH, MAN_HEIGHT);
break;
case 1:
game.MydrawRegion(graphics,I_man,directionhit*4*MAN_WIDTH + man_picIndex * MAN_WIDTH,0,position_man_x,position_man_y, MAN_WIDTH, MAN_HEIGHT);
break;
case 2:
game.MydrawRegion(graphics,I_man,directionhit*4*MAN_WIDTH + man_picIndex * MAN_WIDTH,16,position_man_x,position_man_y, MAN_WIDTH, MAN_HEIGHT);
break;
}
}
else if (directionup == 1)
{
switch(direction)
{
case 0:
game.MydrawRegion(graphics,I_man,directionhit*4*MAN_WIDTH + man_picIndex * MAN_WIDTH,48,position_man_x,position_man_y, MAN_WIDTH, MAN_HEIGHT);
break;
case 1:
game.MydrawRegion(graphics,I_man,directionhit*4*MAN_WIDTH + man_picIndex * MAN_WIDTH,32,position_man_x,position_man_y, MAN_WIDTH, MAN_HEIGHT);
break;
case 2:
game.MydrawRegion(graphics,I_man,directionhit*4*MAN_WIDTH + man_picIndex * MAN_WIDTH,64,position_man_x,position_man_y, MAN_WIDTH, MAN_HEIGHT);
break;
}
}
}
//檢查人物是否到達(dá)頂部
public void checktop(int topposition,int lifevalue,int chg_man_y)
{
if(position_man_y <= topposition)
{
life = life- lifevalue;
position_man_y = topposition + chg_man_y;
directionhit = 1;
}
if(life < 1)
{
isgameover = true;
position_man_y = SCREEN_HEIGHT + position_man_y;
}
}
//檢查人物是否到達(dá)底部
public void checkbottom(int bottomposition,int chg_man_y)
{
if(position_man_y > bottomposition - 16)
{
life = 0;
isgameover = true;
position_man_y = bottomposition + MAN_HEIGHT + chg_man_y;
}
}
public void checkside()
{
if(position_man_x < 9)
{
position_man_x = 8;
}
if(position_man_x > SCREEN_WIDTH-16-9)
{
position_man_x = SCREEN_WIDTH-16-8;
}
}
public void checkposition(Graphics graphics, int nearly_x, int nearly_y, int chg_man_y)
{
int check_num=1;
for(int i=0;i<16;i++)
{
if (position_man_x + MAN_WIDTH - nearly_x >= position_obj_x[i] && position_man_x <= position_obj_x[i] + OBJ_WIDTH - nearly_x)
{
switch(Int_tmp[i])
{
case 0://平板
if(position_obj_y[i] - position_man_y - MAN_HEIGHT >=- nearly_y && position_obj_y[i] - position_man_y - MAN_HEIGHT <= nearly_y)
{
life_change++;
if(life_change == 1 && life < 15)
life++;
position_man_y=position_obj_y[i]-16;
position_man_y = position_man_y - chg_man_y;
check_num = 0;
directionup = 0;
directionhit = 0;
}
break;
case 1://右滾板
if(position_obj_y[i] - position_man_y - MAN_HEIGHT >=- nearly_y && position_obj_y[i] - position_man_y - MAN_HEIGHT <= nearly_y)
{
life_change++;
if(life_change == 1 && life < MAX_LIFE)
life++;
position_man_y=position_obj_y[i]-16;
position_man_y = position_man_y - chg_man_y;
check_num = 0;
position_man_x++;
directionup = 0;
directionhit = 0;
}
break;
case 2://左滾板
if(position_obj_y[i] - position_man_y - MAN_HEIGHT >=- nearly_y && position_obj_y[i] - position_man_y - MAN_HEIGHT <= nearly_y)
{
life_change++;
if(life_change == 1 && life < MAX_LIFE)
life++;
position_man_y=position_obj_y[i]-16;
position_man_y = position_man_y - chg_man_y;
check_num = 0;
position_man_x--;
directionup = 0;
directionhit = 0;
}
break;
case 3://翻板
if(position_obj_y[i] - position_man_y - MAN_HEIGHT >=- nearly_y && position_obj_y[i] - position_man_y - MAN_HEIGHT <= nearly_y)
{
life_change++;
if(life_change == 1 && life < MAX_LIFE)
life++;
position_man_y = position_obj_y[i]-MAN_HEIGHT;
position_man_y = position_man_y - chg_man_y;
check_num = 0;
time_num++;
directionup = 0;
directionhit = 0;
if (time_num == 1)
{
game.MydrawRegion(graphics,I_obj1,0,96,position_obj_x[i], position_obj_y[i]-3,48,14);
}
else if (time_num == 2)
{
game.MydrawRegion(graphics,I_obj1,0,110,position_obj_x[i], position_obj_y[i]-4,48,16);
}
else if (time_num == 3)
{
game.MydrawRegion(graphics,I_obj1,0,126,position_obj_x[i], position_obj_y[i]-3,48,15);
}
else if (time_num == 4)
{
game.MydrawRegion(graphics,I_obj1,0,88,position_obj_x[i], position_obj_y[i],48,8);
position_man_y = position_man_y + chg_man_y + 2;
time_num = 0;
}
}
break;
case 4://彈板
//if(position_obj_y[i] - position_man_y - MAN_HEIGHT >=- nearly_y && position_obj_y[i] - position_man_y - MAN_HEIGHT <= nearly_y)
{
time_num++;
if (time_num == 1&&position_obj_y[i]-position_man_y-16>=-3&&position_obj_y[i]-position_man_y-16<=3)
{
life_change++;
if(life_change == 1 && life < MAX_LIFE)
life++;
position_man_y = position_obj_y[i]-16;
//position_man_y--;
check_num = 0;
game.MydrawRegion(graphics,I_obj1,0,147,position_obj_x[i], position_obj_y[i]-2,48,8);
position_man_y = position_man_y - OBJ_MOV*2;
directionup = 1;
directionhit = 0;
}
else if (time_num == 2&&position_obj_y[i]-position_man_y-16>=2&&position_obj_y[i]-position_man_y-16<=7)
{
life_change++;
if(life_change == 1 && life < MAX_LIFE)
life++;
position_man_y = position_obj_y[i]-16-5;
check_num = 0;
game.MydrawRegion(graphics,I_obj1,0,155,position_obj_x[i], position_obj_y[i]-3,48,9);
position_man_y = position_man_y - OBJ_MOV*2;
directionup = 1;
directionhit = 0;
}
else if (time_num == 3&&position_obj_y[i]-position_man_y-16>=7&&position_obj_y[i]-position_man_y-16<=12)
{
life_change++;
if(life_change == 1 && life < MAX_LIFE)
life++;
position_man_y = position_obj_y[i]-16-10;
check_num = 0;
game.MydrawRegion(graphics,I_obj1,0,164,position_obj_x[i], position_obj_y[i]-4,48,10);
position_man_y = position_man_y - OBJ_MOV*2;
time_num = 0;
directionup = 1;
directionhit = 0;
}
else
{
time_num--;
directionup = 0;
directionhit = 0;
}
}
break;
case 5://帶刺的板
if(position_obj_y[i] - position_man_y - MAN_HEIGHT/2 >=- nearly_y && position_obj_y[i] - position_man_y - MAN_HEIGHT/2 <= nearly_y)
{
life_change++;
if(life_change == 1)
{
life = life - 3;
if(life < 1)
{
position_man_y = SCREEN_HEIGHT + position_man_y;
isgameover = true;
}
}
position_man_y=position_obj_y[i]-8;
position_man_y--;
check_num = 0;
directionup = 0;
directionhit = 1;
}
break;
}
}
}
if (check_num != 0)
{
position_man_y = position_man_y + MAN_MOV_Y;
life_change = 0;
directionup = 1;
directionhit = 0;
}
}
//檢測按鍵信息
public void inputs()
{
int keyState = getKeyStates();
if((keyState & LEFT_PRESSED)!=0)
{
if(position_man_x < SIDE_WIDTH)
{
position_man_x = SIDE_WIDTH;
}
else
{
position_man_x = position_man_x - MAN_MOV_X;
}
direction = 1;
}
else if((keyState & RIGHT_PRESSED )!=0)
{
if(position_man_x > SCREEN_WIDTH -MAN_WIDTH - SIDE_WIDTH - 1)
{
position_man_x = SCREEN_WIDTH - MAN_WIDTH - SIDE_WIDTH;
}
else
{
position_man_x = position_man_x + MAN_MOV_X;
}
direction = 2;
}
else if(((keyState & GAME_A_PRESSED)!=0 || (keyState & GAME_B_PRESSED)!=0 ||(keyState & GAME_C_PRESSED)!=0 || (keyState & GAME_D_PRESSED)!=0 || (keyState & FIRE_PRESSED)!=0 || (keyState & UP_PRESSED)!=0 || (keyState & DOWN_PRESSED)!=0 )&& isgameover)//(keyState & FIRE_PRESSED)!=0 &&
{
/*this.game.mainmenu.menuindex = 1;
game.startGame();*/
running = false;
man.closeman();
}
else direction = 0;
}
//顯示物體
public void draw_obj(Graphics graphics,Image image_show, int obj_id,int pos_x,int pos_y)
{
switch(obj_id)
{
case 0://平板
game.MydrawRegion(graphics,image_show,0,16,pos_x,pos_y, 48, 8);
break;
case 1://右滾板
game.MydrawRegion(graphics,image_show,0,24+man_picIndex * 8,pos_x,pos_y, 48, 8);
break;
case 2://左滾板
game.MydrawRegion(graphics,image_show,0,56+man_picIndex * 8,pos_x,pos_y, 48, 8);
break;
case 3://翻板
game.MydrawRegion(graphics,image_show,0,88,pos_x,pos_y, 48, 8);
break;
case 4://彈板
game.MydrawRegion(graphics,image_show,0,141,pos_x,pos_y, 48, 6);
break;
case 5://帶刺的板
game.MydrawRegion(graphics,image_show,0,0,pos_x,pos_y, 48, 15);
break;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -