⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gamecanvas.java

📁 RPG类游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
			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 + -