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

📄 qt_canvas.java

📁 自己看吧
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
				if(npc_cla_state[3] == 0)
				{
					is_npc[3] = false;
					npcX[3] = G_WW;
				}
				if(npc_cla_state[3] == 1)
				{
					is_npc[3] = true;
					npcX[3] = -NPC3_W;
				}
				npcY[3] = NPC3_MAPY;
				npc_paint[3] = true;
			}
		}
		if(npc_paint[3])
		{
			if(NPC_dead[3])
			{
				npcY[3] += 3;
				if(is_npcB[3])
				{
					if(is_npc[3])
						npcBX[2] += NPC_AMMO1X;
					else
						npcBX[2] -= NPC_AMMO1X;
					npcBY[2] += NPC_AMMO1Y;
				}
				if(npcBY[2] > G_WH)
				{
					if(npcX[3] + NPC3_HCENTER < MAN_HCENTER + manX)
						is_npc[3] = true;
					else
						is_npc[3] = false;
					is_npcB[3] = false;
					npcBX[2] = 0;
					npcBY[2] = 0;
				}
				if(npcY[3] > G_WH)
				{
					npc_paint[3] = false;
					NPC_dead[3] = false;
				}
			}
			else
			{
				if(npc_cla_state[3] == 0)
					npcX[3] -= 2;
				if(npc_cla_state[3] == 1)
					npcX[3] += 2;
				if(npcX[3] > -NPC3_HCENTER && npcX[3] < G_WW - NPC3_HCENTER && npcX[3] % 44 == 0)
				{
					is_npcB[3] = true;
					npcBX[2] = npcX[3] + (NPC3_HCENTER - (NPC_AMMO0_W>>1));
					npcBY[2] = npcY[3] + (NPC3_H - NPC_AMMO0_W);
				}
				if(is_npcB[3])
				{
					if(is_npc[3])
						npcBX[2] += NPC_AMMO1X;
					else
						npcBX[2] -= NPC_AMMO1X;
					npcBY[2] += NPC_AMMO1Y;
				}
				if(npcBY[2] > G_WH)
				{
					if(npcX[3] + 12 < 32 + manX)
						is_npc[3] = true;
					else
						is_npc[3] = false;
					is_npcB[3] = false;
					npcBX[2] = 0;
					npcBY[2] = 0;
				}
				if((npc_cla_state[3] == 0 && npcX[3] <= -NPC3_W) || (npc_cla_state[3] == 1 && npcX[3] >= G_WW))
					npc_paint[3] = false;
			}
		}
		else
		{
			if(is_npcB[3])
			{
				if(is_npc[3])
					npcBX[2] += NPC_AMMO1X;
				else
					npcBX[2] -= NPC_AMMO1X;
				npcBY[2] += NPC_AMMO1Y;
			}
		}
		
		//npc4
		if(!npc_paint[4])
			npc_cla_state[4] = (npc_cla.nextInt()>>>1)%3;
//			System.out.println(npc_cla_state[4]);
		if(npc_cla_state[4] != 2)
		{
			if((mapX == -NPC40_MAPX || mapX == -NPC41_MAPX || mapX == -NPC42_MAPX)
					&& (npcX[4] <= 0 || npcX[4] >= G_WW || !NPC_dead[4]) && !npc_paint[4])
			{
				if(npc_cla_state[4] == 0)
				{
					is_npc[4] = false;
					NPC_state[4] = 0;
					npcX[4] = G_WW;
				}
				if(npc_cla_state[4] == 1)
				{
					is_npc[4] = true;
					NPC_state[4] = 1;
					npcX[4] = -NPC3_W;
				}
				npcY[4] = NPC4_MAPY;
				npc_paint[4] = true;
			}
		}
		if(npc_paint[4])
		{
			if(NPC_dead[4])
			{
				npcY[4] += 3;
				if(is_npcB[4])
				{
					if(is_npc[4])
						npcBX[1] += NPC_AMMO0X;
					else
						npcBX[1] -= NPC_AMMO0X;
					npcBY[1] += NPC_AMMO0Y;
				}
				if(npcBY[1] > G_WH)
				{
					if(npcX[4] + NPC3_HCENTER < MAN_HCENTER + manX)
						is_npc[4] = true;
					else
						is_npc[4] = false;
					is_npcB[4] = false;
					npcBX[1] = 0;
					npcBY[1] = 0;
				}
				if(npcY[4] > G_WH)
				{
					npc_paint[4] = false;
					NPC_dead[4] = false;
				}
			}
			else
			{
				if(npc_cla_state[4] == 0)
					npcX[4] -= 2;
				if(npc_cla_state[4] == 1)
					npcX[4] += 2;
				if(npcX[4] > -NPC3_HCENTER && npcX[4] < G_WW - NPC3_HCENTER && npcX[4] % 44 == 0)
				{
					is_npcB[4] = true;
					npcBX[1] = npcX[4] + (NPC3_HCENTER - (NPC_AMMO1X>>1));
					npcBY[1] = npcY[4] + (NPC3_H - NPC_AMMO1_W);
				}
				if(is_npcB[4])
				{
					if(is_npc[4])
						npcBX[1] += NPC_AMMO0X;
					else
						npcBX[1] -= NPC_AMMO0X;
					npcBY[1] += NPC_AMMO0Y;
				}
				if(npcBY[1] > G_WH)
				{
					if(npcX[4] + NPC3_HCENTER < MAN_HCENTER + manX)
						is_npc[4] = true;
					else
						is_npc[4] = false;
					is_npcB[4] = false;
					npcBX[1] = 0;
					npcBY[1] = 0;
				}
				if((npc_cla_state[4] == 0 && npcX[4] <= -NPC3_W) || (npc_cla_state[4] == 1 && npcX[4] >= G_WW))
					npc_paint[4] = false;
			}
		}
		else
		{
			if(is_npcB[4])
			{
				if(is_npc[4])
					npcBX[1] += NPC_AMMO0X;
				else
					npcBX[1] -= NPC_AMMO0X;
				npcBY[1] += NPC_AMMO0Y;
			}
		}
		
		//npc5
		if(!npc_paint[5])
			npc_cla_state[5] = (npc_cla.nextInt()>>>1)%3;
//			System.out.println(npc_cla_state[5]);
		if(npc_cla_state[5] != 2)
		{
			if((mapX == -NPC50_MAPX || mapX == -NPC51_MAPX || mapX == -NPC52_MAPX)
					&& npcY[5] <= MAN_Y
					&& (npcX[5] <= 0 || npcX[5] >= G_WW || !NPC_dead[5]) && !npc_paint[5])
			{
				if(npc_cla_state[5] == 0)
				{
					npcX[5] = G_WW;
				}
				if(npc_cla_state[5] == 1)
				{
					npcX[5] = -NPC3_W;
				}
				npcY[5] = NPC5_MAPY;
				npc_paint[5] = true;
			}
		}
		if(npc_paint[5])
		{
			if(NPC_dead[5])
			{
				npcY[5] += 3;
				if(npcY[5] > G_WH)
				{
					npc_paint[5] = false;
					NPC_dead[5] = false;
					is_npcB[5] = false;
					NPC_state[5] = 0;
					npcY_temp[5] = 0;
				}
			}
			else
			{
				if(is_npcB[5])
				{
					if(npcY[5] < NPC_MY)
					{
						npcY_temp[5] += 3;
						npcY[5] += npcY_temp[5];
					}
					else
						npcX[5] -= 1;
				}
				else
				{
					if(npc_cla_state[5] == 0)
					{
						npcX[5] -= 2;
					}
					if(npc_cla_state[5] == 1)
					{
						npcX[5] += 2;
					}
					if(npcX[5] + NPC3_W > manX + MAN_LEFT && npcX[5] < manX + MAN_RIGHT)
					{
						is_npcB[5] = true;
						NPC_state[5] = 1;
						if(npc_cla_state[5] == 0)
							npcX[5] -= MAN_HCENTER_PENG;
						if(npc_cla_state[5] == 1)
							npcX[5] += MAN_HCENTER_PENG;
					}
				}
				if(((npc_cla_state[5] == 0 || is_npcB[5]) && npcX[5] <= -NPC3_W) || (npc_cla_state[5] == 1 && npcX[5] >= G_WW))
				{
					npc_paint[5] = false;
					is_npcB[5] = false;
					NPC_state[5] = 0;
					npcY_temp[5] = 0;
				}
			}
		}
	}

	//TODO 人物相关计算
	public void operatorsplayer()
	{
		if(player_state == 3)
		{
			manY += 2;
			for(i = 0;i < 6;++i)
			{
				if(is_ruyi)
				{
					if((i_ammo[0][i] != 0 || i_ammo[1][i] != 0) && MAN_AMMO0_Y + i_ammo[1][i] > BACKDROP
							&& MAN_AMMO0_X + angle[i].tempX + i_ammo[0][i] > 0
							&& MAN_AMMO0_X + angle[i].tempX + i_ammo[0][i] < G_WW)
					{
						i_ammo[0][i] += angle[i].angleX[temp_ammo[i]] * 16 / 10000;
						i_ammo[1][i] -= angle[i].angleY[temp_ammo[i]] * 16 / 10000;
					}
				}
				else
				{
					if((i_ammo[0][i] != 0 || i_ammo[1][i] != 0) && MAN_AMMO1_Y + i_ammo[1][i] > BACKDROP
							&& MAN_AMMO1_X + angle[i].tempX + i_ammo[0][i] > 0
							&& MAN_AMMO1_X + angle[i].tempX + i_ammo[0][i] < G_WW)
					{
						i_ammo[0][i] += angle[i].angleX[temp_ammo[i]] * 16 / 10000;
						i_ammo[1][i] -= angle[i].angleY[temp_ammo[i]] * 16 / 10000;
					}
				}
			}
			if(manY + MAN_Y > G_WH)
			{
				player_state = 1;
				player_wudi = 30;
			}
		}
		else
		{
			if(is_baoxian)
			{
				baoxianY += 8;
				if(baoxianY > G_WH + BAOXIANY)
				{
					for(i = 0;i < 6;++i)
					{
						if(npc_paint[i])
							NPC_dead[i] = true;
					}
					if(player_state == 0 || player_state == 1)
						player_state = 1;
					if(player_state == 2)
						player_state = 4;
					player_wudi = 30;
					is_baoxian = false;
				}
			}
			if(player_state == 1)
			{
				if(manY > 0)
				{
					manY -= 2;
				}
				else
				{
					manY = 0;
					is_suo = true;
					if(player_wudi > 0)
						--player_wudi;
					else
						player_state = 0;
				}
			}
			if(player_state == 2)
			{
				if(player_speed > 0)
					--player_speed;
				else
				{
					player_state = 0;
					man_speed = man_speed>>1;
				}
			}
			if(player_state == 4)
			{
				if(manY > 0)
				{
					manY -= 2;
				}
				else
				{
					manY = 0;
					is_suo = true;
					--player_wudi;
					--player_speed;
					if(player_wudi == 0 && player_speed == 0)
						player_state = 0;
					else if(player_speed == 0)
					{
						player_state = 1;
						man_speed = man_speed>>1;
					}
					else if(player_wudi == 0)
						player_state = 2;
				}
			}
			
			if(player_ruyi > 0)
				--player_ruyi;
			else
				is_ruyi = false;
			if(is_fire)
			{
				for(i = 0;i < 6;++i)
				{
					if(is_left)
					{
						--angle[i].i_ammo;
						if(angle[i].i_ammo < 0)
							angle[i].i_ammo = 0;
					}
					if(is_right)
					{
						++angle[i].i_ammo;
						if(angle[i].i_ammo > temp_ammo.length - 1)
							angle[i].i_ammo = temp_ammo.length - 1;
					}
					if(is_ruyi)
					{
						if(MAN_AMMO0_X + angle[i].tempX + i_ammo[0][i] < 0
								|| MAN_AMMO0_X + angle[i].tempX + i_ammo[0][i] > G_WW
								|| MAN_AMMO0_Y + i_ammo[1][i] < BACKDROP)
						{
							angle[i].tempX = manX;
							i_ammo[0][i] = 0;
							i_ammo[1][i] = 0;
						}
					}
					else
					{
						if(MAN_AMMO1_X + angle[i].tempX + i_ammo[0][i] < 0
								|| MAN_AMMO1_X + angle[i].tempX + i_ammo[0][i] > G_WW
								|| MAN_AMMO1_Y + i_ammo[1][i] < BACKDROP)
						{
							angle[i].tempX = manX;
							i_ammo[0][i] = 0;
							i_ammo[1][i] = 0;
						}
					}
				}
				for(i = 0;i < 6;++i)
				{
					if(i_ammo[0][i] == 0 && i_ammo[1][i] == 0)
					{
						angle[i].tempX = manX;
						temp_ammo[i] = angle[i].i_ammo;
						i_ammo[0][i] += angle[i].angleX[temp_ammo[i]] * 16 / 10000;
						i_ammo[1][i] -= angle[i].angleY[temp_ammo[i]] * 16 / 10000;
						break;
					}
					else
					{
						i_ammo[0][i] += angle[i].angleX[temp_ammo[i]] * 16 / 10000;
						i_ammo[1][i] -= angle[i].angleY[temp_ammo[i]] * 16 / 10000;
					}
				}
			}
			else
			{
				for(i = 0;i < 6;++i)
				{
					if(is_ruyi)
					{
						if((i_ammo[0][i] != 0 || i_ammo[1][i] != 0) && MAN_AMMO0_Y + i_ammo[1][i] > BACKDROP
								&& MAN_AMMO0_X + angle[i].tempX + i_ammo[0][i] > 0
								&& MAN_AMMO0_X + angle[i].tempX + i_ammo[0][i] < G_WW)
						{
							i_ammo[0][i] += angle[i].angleX[temp_ammo[i]] * 16 / 10000;
							i_ammo[1][i] -= angle[i].angleY[temp_ammo[i]] * 16 / 10000;
						}
					}
					else
					{
						if((i_ammo[0][i] != 0 || i_ammo[1][i] != 0) && MAN_AMMO1_Y + i_ammo[1][i] > BACKDROP
								&& MAN_AMMO1_X + angle[i].tempX + i_ammo[0][i] > 0
								&& MAN_AMMO1_X + angle[i].tempX + i_ammo[0][i] < G_WW)
						{
							i_ammo[0][i] += angle[i].angleX[temp_ammo[i]] * 16 / 10000;
							i_ammo[1][i] -= angle[i].angleY[temp_ammo[i]] * 16 / 10000;
						}
					}
				}
			}
			if(is_left)
			{
				if(manX > -MAN_LX + 5)
					manX -= man_speed;
				is_qianjin = true;
			}
			if(is_right)
			{
				if(manX < G_WW - MAN_RIGHT - 5)
					manX += man_speed;
				is_qianjin = false;
			}
		}
	}
	
	//道具相关计算
	public void operatorsitem()
	{
		for(i = 0;i < 10;++i)
		{
			if(is_item[i])
			{
				if(i_itemY[i] < ITEM_MY)
					i_itemY[i] += 1;
				else
				{
					i_itemY[i] = ITEM_MY;
					i_itemX[i] -= 1;
					if(i_itemX[i] <= -ITEM0_W)
						is_item[i] = false;
				}
			}
		}
	}
	
	//TODO 人物碰撞
	public void pengplayer()
	{
		if(is_fire)
		{
			for(i = 0;i < 6;++i)
			{
				for(j = 0;j < 6;++j)
				{
					//人物子弹和敌人的碰撞
					if(is_ruyi)
					{
						switch(j)
						{
						case 0:
							if(!NPC_dead[0] && npcX[0] < G_WW && npcX[0] + NPC0_W > 0)
							{
								if(((MAN_AMMO0_X + angle[i].tempX + i_ammo[0][i] > npcX[0]
		       							&& MAN_AMMO0_X + angle[i].tempX + i_ammo[0][i] < npcX[0] + NPC0_W)
		       						

⌨️ 快捷键说明

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