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

📄 gamecanvas.java

📁 RPG类游戏
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		    	{
					Player_Nowframe++;
				}
				else
				{
					Player_Nowframe=0;			    
				}
		    	Player_Frames = Player_Action[Player_Act][Player_Nowframe];	    	
			break;
			
			case -2:  //下
				Player_ZTime = 0;
				if(Now_Direction == -2 && Run_Time < 4)
				{
					Is_Walk_Or_Run = false;
				}
				if(Is_Walk_Or_Run)
				{
					Player_Act = 3;
				}
				else
				{
					Player_Act = 1;
				}
				if(Player_y < 125)
				{
					Player_y += Player_Speed;
				}
				if(Player_Nowframe<Player_Action[Player_Act].length-1)
		    	{
			    	Player_Nowframe++;
				}
				else
				{
					Player_Nowframe=0;			    
				}
		    	Player_Frames = Player_Action[Player_Act][Player_Nowframe];
			break;
			
			case -3: //左
				Player_ZTime = 0;
				Is_Left_Or_Right = true;
				if(Now_Direction == -3 && Run_Time < 4)
				{
					Is_Walk_Or_Run = false;
				}
				if(Is_Walk_Or_Run)
				{
					Player_Act = 3;
				}
				else
				{
					Player_Act = 1;
				}
			    if(Player_x > 16)
			    {
			    	Player_x -= Player_Speed;
			    }
			    else
			    {
			    	for(int i = 0;i < AllEnemy.size();i++)
					{
						int Tmp[] = (int []) AllEnemy.elementAt(i);
						Tmp[2] += Player_Speed;
					}
			    	Zidan_x += Player_Speed;
			    	Bk_x += Player_Speed;
					Xueqing_x += Player_Speed;
			    	if(Bk_x > 0)
			    	{
			    		Bk_x -= 176;
			    	}
			    }
			    if(Player_Nowframe<Player_Action[Player_Act].length-1)
		    	{
			    	Player_Nowframe++;
				}
				else
				{
					Player_Nowframe=0;			    
				}
		    	Player_Frames = Player_Action[Player_Act][Player_Nowframe];
			break;
			
			case -4: //右
				Player_ZTime = 0;
				Is_Left_Or_Right = false;
				if(Now_Direction == -4 && Run_Time < 4)
				{
					Is_Walk_Or_Run = false;
				}
				if(Is_Walk_Or_Run)
				{
					Player_Act = 3;
				}
				else
				{
					Player_Act = 1;
				}
				if(Player_x < 90)
				{
					Player_x += Player_Speed;
				}
				else
				{
					for(int i = 0;i < AllEnemy.size();i++)
					{
						int Tmp[] = (int []) AllEnemy.elementAt(i);
						Tmp[2] -= Player_Speed;
					}	
					Bk_x -= Player_Speed;
					Zidan_x -= Player_Speed;
					Xueqing_x -= Player_Speed;
					if(Bk_x < -176)
					{
						Bk_x += 176;
					}
				}
				if(Player_Nowframe<Player_Action[Player_Act].length-1)
		    	{
			    	Player_Nowframe++;
				}
				else
				{
					Player_Nowframe=0;			    
				}
		    	Player_Frames = Player_Action[Player_Act][Player_Nowframe];
			break;
			
			case -5:  //攻击
				Player_ZTime = 0;
				if(Is_Act_Or_Kan)
				{
					Player_Nowframe=0;
					for(int i = 0;i < AllEnemy.size();i++)
					{
						int Tmp[] = (int []) AllEnemy.elementAt(i);
						if(Is_Left_Or_Right)
						{
							if(Player_x < Tmp[2]+22 && Player_x+22 > Tmp[2]+7 && Math.abs((Player_y+Game_Player.getHeight())-(Tmp[3]+Game_Enemy[0].getHeight())) < 6)
							{
								if(Tmp[6] != 3)
								{
									Tmp[1] += 1;
									Tmp[2] -= (Tmp[5]+4);
									Player_x -= 2;
								}
								if(Tmp[1] >= 3)
								{
									if(Tmp[6] != 3)
									{
										Game_Score += 100;
									}
									Tmp[6] = 3;
									Tmp[4] = 0;
									Tmp[1] = 0;
								}
								if(Player_Nowframe<Player_Action[2].length-1)
							    {
									if(Act_Time < 5)
									{
										Player_Nowframe++;
										Act_Time = 0;
									}
									else
									{
										Player_Nowframe = 0;
										Act_Time = 0;
									}
								}
								else
								{
									Player_Nowframe=0;
								}
							}
							else
							{
								Player_Nowframe=0;
							}
						}
						else
						{
							if(Player_x+69 > Tmp[2]+7 && Player_x+47 < Tmp[2]+22 && Math.abs((Player_y+Game_Player.getHeight())-(Tmp[3]+Game_Enemy[0].getHeight())) < 6)
							{
								if(Tmp[6] != 3)
								{
									Tmp[1] += 1;
									Tmp[2] += (Tmp[5]+4);
									Player_x += 2;
								}
								if(Tmp[1] >= 3)
								{
									if(Tmp[6] != 3)
									{
										Game_Score += 100;
									}
									Tmp[6] = 3;
									Tmp[4] = 0;
									Tmp[1] = 0;
								}
								if(Player_Nowframe<Player_Action[2].length-1)
							    {
									if(Act_Time < 5)
									{
										Player_Nowframe++;
										Act_Time = 0;
									}
									else
									{
										Player_Nowframe = 0;
										Act_Time = 0;
									}
								}
								else
								{
									Player_Nowframe=0;
								}
							}
							else
							{
								Player_Nowframe=0;
							}
						}
					}				
					if(Key_Time > 1)
					{
						Player_Act = 0;
						Player_Direction = 0;
					}
					Player_Frames = Player_Action[2][Player_Nowframe];
				}
				else
				{
					for(int i = 0;i < AllEnemy.size();i++)
					{
						int Tmp[] = (int []) AllEnemy.elementAt(i);
						if(Is_Left_Or_Right)
						{
							if(Player_x+2 < Tmp[2]+22 && Player_x+22 > Tmp[2]+7 && Math.abs((Player_y+Game_Player.getHeight())-(Tmp[3]+Game_Enemy[0].getHeight())) < 6)
							{
								if(Tmp[6] != 3)
								{
									Tmp[1] += 2;
									Tmp[2] -= (Tmp[5]+2);
								}
								if(Tmp[1] >= 3)
								{
									if(Tmp[6] != 3)
									{
										Game_Score += 100;
									}
									Tmp[6] = 3;
									Tmp[4] = 0;
									Tmp[1] = 0;
								}
							}
						}
						else
						{
							if(Player_x+90 > Tmp[2]+7 && Player_x+47 < Tmp[2]+22 && Math.abs((Player_y+Game_Player.getHeight())-(Tmp[3]+Game_Enemy[0].getHeight())) < 6)
							{
								if(Tmp[6] != 3)
								{
									Tmp[1] += 2;
									Tmp[2] -= (Tmp[5]+2);
								}
								if(Tmp[1] >= 3)
								{
									if(Tmp[6] != 3)
									{
										Game_Score += 100;
									}
									Tmp[6] = 3;
									Tmp[4] = 0;
									Tmp[1] = 0;
								}
							}
						}
					}
				}
			break;
			
			case 51:  //开枪
				Player_ZTime = 0;
				if(Key_Time > 1)
				{
					Player_Act = 0;
					Player_Direction = 0;
				}
				if(Player_Bullet > 0)
				{
					Player_Bullet--;

					int Choice = 0;
					boolean Is_Yes_Or_No = false;
					if(Is_Left_Or_Right)
					{
						for(int i = 0;i < AllEnemy.size() - 1;i++)
						{
							int Tmp[] = (int []) AllEnemy.elementAt(i);
							if(Tmp[0] == 0)
							{
								Choice = i;
								Is_Yes_Or_No = true;
							}
						}
						if(Is_Yes_Or_No)
						{
							int Tmp[] = (int []) AllEnemy.elementAt(Choice);
							Tmp[1]++;
							if(Tmp[1] > 2)
							{
								Tmp[6] = 3;
							}
							Is_Yes_Or_No = false;
							if((Player_y+48)-(Tmp[3]+30) > 9)
							{
								Player_Nowframe = 0;
							}
							else if(Math.abs((Player_y+48)-(Tmp[3]+30)) < 10)
							{
								Player_Nowframe = 1;
							}
							else
							{
								Player_Nowframe = 2;
							}
							Player_Frames = Player_Action[4][Player_Nowframe];
						}
						else
						{
							Player_Nowframe = 1;
						}
					}
					else
					{
						for(int i = 0;i < AllEnemy.size() - 1;i++)
						{
							int Tmp[] = (int []) AllEnemy.elementAt(i);
							if(Tmp[0] == 1)
							{
								Choice = i;
								Is_Yes_Or_No = true;
							}
						}
						if(Is_Yes_Or_No)
						{
							int Tmp[] = (int []) AllEnemy.elementAt(Choice);
							Tmp[1]++;
							if(Tmp[1] > 2)
							{
								Tmp[6] = 3;
							}
							Is_Yes_Or_No = false;
							if((Player_y+48)-(Tmp[3]+30) > 9)
							{
								Player_Nowframe = 0;
							}
							else if(Math.abs((Player_y+48)-(Tmp[3]+30)) < 10)
							{
								Player_Nowframe = 1;
							}
							else
							{
								Player_Nowframe = 2;
							}
						}
						else
						{
							Player_Nowframe = 1;
						}
					}
					Player_Frames = Player_Action[4][Player_Nowframe];
				}
				else
				{
					Player_Act = 0;
					Player_Direction = 0;
					Player_Frames = 0;
				}
			break;
			
			case 57:
				if(Player_Wrath != 62)
				{
					Player_Act = 0;
					Player_Direction = 0;
				}
				if(Player_Wrath == 62)
				{
					if(Power_Time < 11)
					{
						Power_Time++;
					}
					if(Power_Time > 10)
					{
						for(int i = 0;i < AllEnemy.size() - 1;i++)
						{
							int Tmp[] = (int []) AllEnemy.elementAt(i);
							Tmp[6] = 3;
						}
						Player_Direction = 0;
						Power_Time = 0;
						Player_Wrath = 0;
					}
				}
			break;
			
			case 50:
				if(Player_Serum > 0)
				{
					Player_Serum--;
					if(Player_Blood < 62)
					{
						Player_Blood += 15;
					}
					if(Player_Blood > 62)
					{
						Player_Blood = 62;
					}
				}
			break;
			
			case 0:
				Player_ZTime++;
				if(Player_ZTime > 20)
				{
					Blood_Time++;
					if(Blood_Time > 10)
					{
						switch(Blood_Num)
						{
						case 0:
							if(Player_Blood < 62)
							{
								Player_Blood++;
							}
						break;

						case 1:
							if(Player_Blood < 46)
							{
								Player_Blood++;
							}
						break;

						case 2:
							if(Player_Blood < 30)
							{
								Player_Blood++;
							}
						break;

						case 3:
							if(Player_Blood < 14)
							{
								Player_Blood++;
							}
						break;
						}
						Blood_Time = 0;
					}
				}
			break;
			}
		}
		else
		{
			Player_Frames = Player_Action[5][Player_Nowframe];
		}
//		System.out.println("Key_Time = "+Key_Time);
//		System.out.println("Act_Time = "+Act_Time);
//		System.out.println("Kan_Time = "+Kan_Time);
//		System.out.println("Player_Nowframe = "+Player_Nowframe);
//		System.out.println("Player_Direction = "+Player_Direction);
//		System.out.println("Player_Act = "+Player_Act);
//		System.out.println("Run_Time = "+Run_Time);
//		System.out.println("Player_Speed = "+Player_Speed);
	}
	
//绘制主角
	protected void DrawPlayer()
	{
		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);  //设定剪裁区	
		if(Player_Act != 5)
		{
			switch(Player_Direction)
			{		
			case -1:
				if(Is_Left_Or_Right)
				{
					DG.drawImage(Game_Player,Player_x-(Game_Player.getWidth()-Player_Frame[Player_Frames+1][0]),Player_y,0,DirectGraphics.FLIP_HORIZONTAL);

				}
				else
				{
					offG.drawImage(Game_Player,Player_x-Player_Frame[Player_Frames][0],Player_y,0);
				}
			break;
			
			case -2:
				if(Is_Left_Or_Right)
				{
					DG.drawImage(Game_Player,Player_x-(Game_Player.getWidth()-Player_Frame[Player_Frames+1][0]),Player_y,0,DirectGraphics.FLIP_HORIZONTAL);
				}
				else
				{
					offG.drawImage(Game_Player,Player_x-Player_Frame[Player_Frames][0],Player_y,0);
				}
			break;
			
			case -3:
				DG.drawImage(Game_Player,Player_x-(Game_Player.getWidth()-Player_Frame[Player_Frames+1][0]),Player_y,0,DirectGraphics.FLIP_HORIZONTAL);
			break;
			
			case -4:
			    offG.drawImage(Game_Player,Player_x-Player_Frame[Player_Frames][0],Player_y,0);
			break;
			
			case -5:
				if(Is_Act_Or_Kan)
				{
					if(Is_Left_Or_Right)
					{
						DG.drawImage(Game_Player,Player_x-(Game_Player.getWidth()-Player_Frame[Player_Frames+1][0]),Player_y,0,DirectGraphics.FLIP_HORIZONTAL);
					}
					else
					{
						offG.drawImage(Game_Player,Player_x-Player_Frame[Player_Frames][0],Player_y,0);
					}
				}
				else
				{
//					Is_Act_Or_Kan = true;
					offG.setClip(Player_x,Player_y,90,48);
					if(Is_Left_Or_Right)
					{
						DG.drawImage(Player_Kan,Player_x,Player_y,0,DirectGraphics.FLIP_HORIZONTAL);
					}
					else
					{
						offG.drawImage(Player_Kan,Player_x,Player_y,0);
					}
				}
			break;
			
			case 51:
				if(Is_Left_Or_Right)
				{
					DG.drawImage(Game_Player,Player_x-(Game_Player.getWidth()-Player_Frame[Player_Frames+1][0]),Player_y,0,DirectGraphics.FLIP_HORIZONTAL);
				}
				else
				{
					offG.drawImage(Game_Player,Player_x-Player_Frame[Player_Frames][0],Player_y,0);
				}
			break;
			
			case 57:
				if(Player_Wrath == 62)
				{
					offG.setClip(0,0,176,208);
					offG.setColor(0);
					offG.fillRect(0,0,176,208);
					if(Power_Time < 6)
					{
						offG.setColor(0xffffff);
						if(Baitiao < 176)
						{
							Baitiao += 30;
						}
						offG.fillRect(0,102,Baitiao,4);
					}
					else
					{
						offG.drawImage(Thunder,0,92,0);
						if(Power_Time > 8)
			

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -