📄 gamecanvas.java
字号:
offG.drawImage(Logo1,0,0,0); //绘制移动LOGO
break;
case 1:
offG.setColor(0);
offG.fillRect(0,0,176,208); //绘制白底
offG.drawImage(Logo2,0,0,0); //绘制工作室LOGO
break;
case 2:
offG.drawImage(Input_Bk,0,0,0); //绘制登陆界面
offG.drawImage(Input_Hand,88,Input_Hand_y,0); //绘制界面指针
break;
case 3:
offG.drawImage(Game_Bk[0],Bk_x,0,0); //游戏背景
offG.drawImage(Game_Bk[0],Bk_x+176,0,0); //游戏背景
CreateEnemy(); //产生Enemy
Bomb();
DrawPlayer();
offG.setClip(0,0,176,208);
offG.setColor(0xFF0000);
offG.fillRect(29,196,Player_Blood,6); //主角血条
offG.setColor(0x00FFFF);
offG.fillRect(29,190,Player_Wrath,3); //主角怒气
offG.drawImage(Player_Head,1,179,0); //主角头像
offG.setColor(0xffffff);
offG.drawString(" "+Game_Score,1,2,0); //分数
offG.drawString(""+Player_Serum,115,179,0); //血清数量
offG.drawString(""+Player_Bullet,115,195,0); //子弹数量
break;
case 4:
offG.drawImage(Game_Help,0,0,0);
break;
case 5:
offG.drawImage(Game_Help,0,0,0);
break;
case 6:
offG.drawImage(Game_Make,0,0,0);
break;
case 7:
offG.drawImage(BOSSBK,BOSSBK_x,0,0);
System.out.println(Input_BOSS_Mode);
if(Is_On_Or_Off)
{
if(BOSS_y+33 <= Player_y+48)
{
if(Player_Direction != 57)
{
DrawBOSS();
}
if(!Is_Bianshen)
{
DrawPlayer();
}
else
{
offG.setClip(Player_x+26,Player_y+41,17,8);
offG.setColor(130,130,130);
offG.fillArc(Player_x+26,Player_y+41,17,8,0,360);
offG.setClip(Player_x,Player_y,69,48);
offG.drawImage(Game_Player,Player_x,Player_y,0);
}
}
else
{
if(!Is_Bianshen)
{
DrawPlayer();
}
else
{
offG.setClip(Player_x+26,Player_y+41,17,8);
offG.setColor(130,130,130);
offG.fillArc(Player_x+26,Player_y+41,17,8,0,360);
offG.setClip(Player_x,Player_y,69,48);
offG.drawImage(Game_Player,Player_x,Player_y,0);
}
if(Player_Direction != 57)
{
DrawBOSS();
}
}
if((Fly_Time > 100 && BOSS_Mode == 11) || (BOSS_Mode == 88 && BOSSSiwang_Nowframe > 22))
{
if(Black_Width < 25)
{
offG.setClip(0,0,176,208);
offG.setColor(0);
for(int i = 0;i < 8;i++)
{
offG.fillRect(i*22,0,Black_Width,208);
}
Black_Width += 1;
}
else
{
offG.setClip(0,0,176,208);
offG.setColor(0);
offG.fillRect(0,0,176,208);
Draw_Mode = 88;
}
}
}
else
{
AllTime();
offG.setColor(130,130,130);
offG.fillArc(BOSS_x+5,Player_y+41,13,8,0,360);
switch(Input_BOSS_Mode)
{
case 0:
if(Black_Width > 0)
{
offG.setClip(0,0,176,208);
offG.setColor(0);
for(int i = 0;i < 8;i++)
{
offG.fillRect(i*22,0,Black_Width,208);
}
Black_Width -= 1;
System.out.println("go1");
}
else
{
System.out.println("go2");
if(BOSSBK_x > -176)
{
BOSSBK_x -= 2;
BOSS_x -= 2;
Skull_x1 -= 2;
Skull_x2 -= 2;
Player_x -= 2;
}
else
{
Input_BOSS_Mode = 1;
}
}
Skull_x1 -= 2;
Skull_x2 += 2;
if(Skull_x1 < BOSS_x-20)
{
Skull_x1 = BOSS_x+25;
Skull_x2 = BOSS_x-20;
}
BOSS_y_Time++;
if(BOSS_y_Time > 19)
{
BOSS_y_Time = 0;
}
if(BOSS_y_Time < 10)
{
if(BOSS_y_Time % 2 == 0)
{
BOSS_y++;
}
}
else
{
if(BOSS_y_Time % 2 == 0)
{
BOSS_y--;
}
}
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
offG.drawImage(Skull,Skull_x1,74,0);
if(Chibang_Nowframe < Chibang_Action[Chibang_Act].length-1)
{
Chibang_Nowframe++;
}
else
{
Chibang_Nowframe=0;
}
Chibang_Frames = Chibang_Action[Chibang_Act][Chibang_Nowframe];
offG.setClip(Skull_x1+10,68,21,25);
offG.drawImage(Skull_Chibang,Skull_x1-Chibang_Frame[Chibang_Frames][0]+10,68,0);
offG.setClip(BOSS_x,BOSS_y,21,33);
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
offG.setClip(Skull_x2,74,14,29);
DG.drawImage(Skull,Skull_x2,74,0,DirectGraphics.FLIP_HORIZONTAL);
offG.setClip(Skull_x2-17,68,21,25);
DG.drawImage(Skull_Chibang,Skull_x2-(Skull_Chibang.getWidth()-Chibang_Frame[Chibang_Frames+1][0])-17,68,0,DirectGraphics.FLIP_HORIZONTAL);
break;
case 1:
if(Zhuanquan < 3)
{
BOSS_y_Time++;
if(BOSS_y_Time > 19)
{
BOSS_y_Time = 0;
}
if(BOSS_y_Time < 10)
{
if(BOSS_y_Time % 2 == 0)
{
BOSS_y++;
}
}
else
{
if(BOSS_y_Time % 2 == 0)
{
BOSS_y--;
}
}
Skull_x1 -= 2;
Skull_x2 += 2;
if(Skull_x1 < 72)
{
Skull_x1 = 117;
Skull_x2 = 72;
Zhuanquan++;
}
}
else
{
if(Skull_x1 < 96)
{
Skull_x1 = -500;
Skull_x2 = 500;
Input_BOSS_Mode = 2;
}
else
{
Skull_x1-=2;
Skull_x2+=2;
}
}
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
offG.drawImage(Skull,Skull_x1,74,0);
if(Chibang_Nowframe < Chibang_Action[Chibang_Act].length-1)
{
Chibang_Nowframe++;
}
else
{
Chibang_Nowframe=0;
}
Chibang_Frames = Chibang_Action[Chibang_Act][Chibang_Nowframe];
offG.setClip(Skull_x1+10,68,21,25);
offG.drawImage(Skull_Chibang,Skull_x1-Chibang_Frame[Chibang_Frames][0]+10,68,0);
offG.setClip(BOSS_x,BOSS_y,21,33);
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
offG.setClip(Skull_x2,74,14,29);
DG.drawImage(Skull,Skull_x2,74,0,DirectGraphics.FLIP_HORIZONTAL);
offG.setClip(Skull_x2-17,68,21,25);
DG.drawImage(Skull_Chibang,Skull_x2-(Skull_Chibang.getWidth()-Chibang_Frame[Chibang_Frames+1][0])-17,68,0,DirectGraphics.FLIP_HORIZONTAL);
break;
case 2:
if(BOSS_y+33 < Player_y+48)
{
BOSS_y++;
}
else
{
Input_BOSS_Mode = 3;
BOSS_Act = 6;
}
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
offG.setClip(BOSS_x,BOSS_y,21,33);
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
break;
case 3:
if(BOSS_Nowframe < BOSS_Action[BOSS_Act].length-1)
{
BOSS_Nowframe++;
}
else
{
BOSS_Nowframe=0;
BOSS_Act = 7;
Input_BOSS_Mode = 4;
}
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
offG.setClip(BOSS_x,BOSS_y,21,33);
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
break;
case 4:
if(BOSSBK_x < -122)
{
BOSSBK_x += 12;
Player_x += 12;
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
offG.setClip(BOSS_x,BOSS_y,21,33);
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
offG.setClip(BOSS_x-22,BOSS_y+1,48,23);
offG.drawImage(Chongji,BOSS_x-22,BOSS_y+1,0);
}
else
{
BOSS_Act = 0;
Input_BOSS_Mode = 5;
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
offG.setClip(BOSS_x,BOSS_y,21,33);
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
}
break;
case 5:
if(BOSSBK_x < -88)
{
BOSSBK_x += 2;
BOSS_x += 2;
Player_x += 2;
}
else
{
Input_BOSS_Mode = 6;
}
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
offG.setClip(BOSS_x,BOSS_y,21,33);
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
break;
case 6:
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
offG.setClip(BOSS_x,BOSS_y,21,33);
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
if(BOSS_Blood_x > 0)
{
BOSS_Blood_x -= 4;
}
else
{
Is_On_Or_Off = true;
}
offG.setClip(BOSS_Blood_x,20,BOSS_Blood,7);
offG.setColor(BOSS_Blood_Red,BOSS_Blood_Green,BOSS_Blood_Blue);
offG.fillRect(BOSS_Blood_x,20,BOSS_Blood,7);
break;
}
offG.setClip(Player_x+26,Player_y+41,17,8);
offG.setColor(130,130,130);
offG.fillArc(Player_x+26,Player_y+41,17,8,0,360);
offG.setClip(Player_x,Player_y,69,48);
offG.drawImage(Game_Player,Player_x,Player_y,0);
}
if(Player_Direction != 57 )
{
offG.setClip(0,0,176,208);
offG.setColor(0xFF0000);
offG.fillRect(29,196,Player_Blood,6); //主角血条
offG.setColor(0x00FFFF);
offG.fillRect(29,190,Player_Wrath,3); //主角怒气
offG.drawImage(Player_Head,1,179,0); //主角头像
offG.setColor(0xffffff);
offG.drawString(" "+Game_Score,1,2,0); //分数
offG.drawString(""+Player_Serum,115,179,0); //血清数量
offG.drawString(""+Player_Bullet,115,195,0); //子弹数量
if(Huoyan_Time < 4)
{
offG.setClip(BOSSBK_x+20,91,7,11);
offG.drawImage(Huoyan,BOSSBK_x+20,91,0); //左边火焰
offG.setClip(BOSSBK_x+325,91,7,11);
offG.drawImage(Huoyan,BOSSBK_x+325,91,0); //右边火焰
}
}
break;
case 88:
offG.setClip(0,0,176,208);
offG.setColor(0);
offG.fillRect(0,0,176,208);
offG.setColor(0xff0000);
if(Player_Act == 5)
{
offG.drawString("Game Over!",Game_Over_x,98,0);
}
if(BOSS_Mode == 88)
{
offG.drawString(" Complete",Game_Over_x,98,0);
}
if(Game_Over_x > 48)
{
Game_Over_x -= 4;
}
break;
}
}
//画BOSS
protected void DrawBOSS()
{
offG.setClip(BOSS_Yingzi_x,BOSS_Yingzi_y,BOSS_Yingzi_Width,BOSS_Yingzi_Hight);
offG.setColor(130,130,130);
offG.fillArc(BOSS_Yingzi_x,BOSS_Yingzi_y,BOSS_Yingzi_Width,BOSS_Yingzi_Hight,0,360); //画BOSS的影子
if(BOSS_Mode != 88)
{
offG.setClip(BOSS_x,BOSS_y,21,33);
if(Is_BOSS_Left_Or_Right)
{
offG.drawImage(BOSS,BOSS_x-BOSS_Frame[BOSS_Frames][0],BOSS_y,0);
}
else
{
DG.drawImage(BOSS,BOSS_x-(BOSS.getWidth()-BOSS_Frame[BOSS_Frames+1][0]),BOSS_y,0,DirectGraphics.FLIP_HORIZONTAL);
}
}
else
{
offG.setClip(BOSS_x-14,BOSS_y+6,35,27);
if(Is_BOSS_Left_Or_Right)
{
offG.drawImage(BOSS_Siwang,BOSS_x-BOSSSiwang_Frame[BOSSSiwang_Frames][0]-14,BOSS_y+6,0);
}
else
{
DG.drawImage(BOSS_Siwang,BOSS_x-(BOSS_Siwang.getWidth()-BOSSSiwang_Frame[BOSSSiwang_Frames+1][0])-14,BOSS_y+6,0,DirectGraphics.FLIP_HORIZONTAL);
}
}
if(BOSS_Mode == 1 || BOSS_Mode == 2 || BOSS_Mode == 7 || BOSS_Mode == 8)
{
Yan_Time++;
if(Yan_Time < 8)
{
if(Yan_Time < 4)
{
if(Is_BOSS_Left_Or_Right)
{
offG.setClip(BOSS_x+20,BOSS_y+28,6,6);
offG.drawImage(BOSS_Yan,BOSS_x+20,BOSS_y+28,0);
}
else
{
offG.setClip(BOSS_x-8,BOSS_y+28,6,6);
offG.drawImage(BOSS_Yan,BOSS_x-8,BOSS_y+28,0);
}
}
}
else
{
Yan_Time = 0;
}
}
System.out.println("BOSS_Mode = "+BOSS_Mode);
if(BOSS_Mode == 4)
{
if(BOSS_Nowframe > 14)
{
if(Is_BOSS_Left_Or_Right)
{
offG.setClip(BOSS_x-18,BOSS_y+5,19,13);
offG.drawImage(BOSSACT,BOSS_x-BOSSAct_Frame[BOSSAct_Frames][0]-20,BOSS_y+5,0);
}
else
{
offG.setClip(BOSS_x+21,BOSS_y+5,19,13);
DG.drawImage(BOSSACT,BOSS_x-(BOSSACT.getWidth()-BOSSAct_Frame[BOSSAct_Frames+1][0])+21,BOSS_y+5,0,DirectGraphics.FLIP_HORIZONTAL);
}
}
}
if(BOSS_Mode == 7)
{
if(Is_BOSS_Left_Or_Right)
{
offG.setClip(BOSS_x-22,BOSS_y+1,48,23);
offG.drawImage(Chongji,BOSS_x-22,BOSS_y+1,0);
}
else
{
offG.setClip(BOSS_x-8,BOSS_y+1,48,23);
DG.drawImage(Chongji,BOSS_x-8,BOSS_y+1,0,DirectGraphics.FLIP_HORIZONTAL);
}
}
offG.setClip(BOSS_Blood_x,20,BOSS_Blood,7);
offG.setColor(BOSS_Blood_Red,BOSS_Blood_Green,BOSS_Blood_Blue);
offG.fillRect(BOSS_Blood_x,20,BOSS_Blood,7); //画BOSS的血
}
//BOSS的AI
protected void BOSSAI()
{
if(BOSS_Blood <= 59)
{
BOSS_Speed = 6;
BOSS_Blood_Green = 0;
if(!Is_BOSS_Bianshen)
{
BOSS_Mode = 10;
Is_BOSS_Bianshen = true;
Is_Bianshen = true;
Now_BOSS_y = BOSS_y;
}
}
if(BOSS_Blood <= 0)
{
if(!Is_BOSSSiwang)
{
BOSS_Mode = 88;
}
}
switch(BOSS_Mode)
{
case 0: //站立
BOSS_Yingzi_x = BOSS_x + 5;
BOSS_Yingzi_y = BOSS_y + 26;
BOSS_Yingzi_Width = 13;
BOSS_Yingzi_Hight = 8;
BOSS_Time++;
if(Player_Act != 5)
if(BOSS_Time > 20)
{
BOSS_Random = Math.abs(R.nextInt()%100);
if(BOSS_Random < 90)
{
if(Is_BOSS_Left_Or_Right)
{
BOSS_Mode = 1;
}
else
{
BOSS_Mode = 2;
}
}
else
{
BOSS_Mode = 3;
Now_BOSS_y = BOSS_y;
}
}
BOSS_Frames = BOSS_Action[0][0];
break;
case 1: //向左移动
Is_BOSS_Left_Or_Right = true;
if((Player_x-BOSS_x) < -55 )
{
BOSS_Act = 1;
BOSS_x -= BOSS_Speed;
BOSS_Random = Math.abs(R.nextInt()%100);
if(BOSS_Random < 95)
{
BOSS_Mode = 1;
}
else
{
BOSS_Mode = 3;
Now_BOSS_y = BOSS_y;
}
}
else
{
if(Math.abs((Player_y+48)-(BOSS_y+33)) < 6)
{
BOSS_Mode = 4;
}
}
if((Player_y+48)-(BOSS_y+33) > 5)
{
BOSS_y += BOSS_Speed;
}
if((Player_y+48)-(BOSS_y+33) < -5)
{
BOSS_y -= BOSS_Speed;
}
if(BOSS_Nowframe < BOSS_Action[BOSS_Act].length-1)
{
BOSS_Nowframe++;
}
else
{
BOSS_Nowframe=0;
}
BOSS_Frames = BOSS_Action[BOSS_Act][BOSS_Nowframe];
BOSS_Yingzi_x = BOSS_x + 5;
BOSS_Yingzi_y = BOSS_y + 26;
BOSS_Yingzi_Width = 13;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -