// w t[҂
function wait(w) {
    loop(w) { yield; }
}

let BossShadowDrawNum=0;
let BossShadowScale=0.05;
let BossShadowScaleAngle=0;
let BossShadowX=[];
let BossShadowY=[];
loop(10)
{
BossShadowX=BossShadowX~[0];
BossShadowY=BossShadowX~[0];
}

task DrawBossShadow(imgBoss,Alpha,R,G,B)
{
	SetGraphicAngle(0,0,0);
	SetGraphicScale(1,1);
	DrawBoss( imgBoss );

	SetColor(R,G,B);
	SetAlpha(Alpha);
	SetGraphicScale(1.1+BossShadowScale*sin(BossShadowScaleAngle),1.1+BossShadowScale*sin(BossShadowScaleAngle));
	DrawGraphic(GetX,GetY);
	BossShadowScaleAngle+=3;

	ascent(let j in 0..5)
	{
		DrawGraphic(BossShadowX[j*2],BossShadowY[j*2]);
	}
	SetGraphicAngle(0,0,0);
	SetColor(255,255,255);
	SetAlpha(255);
	SetGraphicScale(1,1);
}

task GetBossShadowPosition
{
	BossShadowDrawNum++;
	if(BossShadowDrawNum>9){BossShadowDrawNum=0;}
	BossShadowX[BossShadowDrawNum]=GetX;
	BossShadowY[BossShadowDrawNum]=GetY;
}


let PSJ=true;
let PlayerShadowDrawNum=0;
let PlayerShadowScale=0.05;
let PlayerShadowScaleAngle=0;
let PlayerShadowX=[];
let PlayerShadowY=[];
loop(10)
{
PlayerShadowX=PlayerShadowX~[0];
PlayerShadowY=PlayerShadowX~[0];
}


task DrawPlayerShadow(imgBoss,Alpha,R,G,B)
{
	SetGraphicAngle(0,0,0);
	SetGraphicScale(1,1);
        SetTexture(imgPlayer);
		if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
		{
			SetGraphicRect(10, 53, 38, 94);
		}
		else if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
		{
			SetGraphicRect(10, 101, 38, 142);
		}
		else
		{
			SetGraphicRect(10, 6, 38, 48);
		}

	SetColor(R,G,B);
	SetAlpha(Alpha);
	if(OnPlayerMissed==false)
	{
	DrawGraphic(GetPlayerX, GetPlayerY);
	}
	SetColor(R,G,B);
	SetAlpha(Alpha);
	SetGraphicScale(1.1+PlayerShadowScale*sin(PlayerShadowScaleAngle),1.1+PlayerShadowScale*sin(PlayerShadowScaleAngle));
	if(OnPlayerMissed==false)
	{
	DrawGraphic(GetPlayerX, GetPlayerY);
	}
	PlayerShadowScaleAngle+=3;

	ascent(let j in 0..5)
	{
        	SetTexture(imgPlayer);
		if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
		{
			SetGraphicRect(10, 53, 38, 94);
		}
		else if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
		{
			SetGraphicRect(10, 101, 38, 142);
		}
		else
		{
			SetGraphicRect(10, 6, 38, 48);
		}
		if(PSJ==true && OnPlayerMissed==false)
		{
		DrawGraphic(PlayerShadowX[j*2],PlayerShadowY[j*2]);
		}
	}
	SetGraphicAngle(0,0,0);
	SetColor(255,255,255);
	SetAlpha(255);
	SetGraphicScale(1,1);
}

task GetPlayerShadowPosition
{
	PlayerShadowDrawNum++;
	if(PlayerShadowDrawNum>9){PlayerShadowDrawNum=0;}
	PlayerShadowX[PlayerShadowDrawNum]=GetPlayerX;
	PlayerShadowY[PlayerShadowDrawNum]=GetPlayerY;
	PlayerShadowChange(PlayerShadowDrawNum);
}

task PlayerShadowJudg
{
loop
{
if(Judg[0]+Judg[1]+Judg[2]+Judg[3]==0)
{
	PSJ=true;
}
else
{
	PSJ=false;
	wait(5);
}
yield;
}
}
task PlayerShadowChange(num)
{
loop(9)
{
		if(GetKeyState(VK_LEFT)==KEY_PUSH || GetKeyState(VK_LEFT)==KEY_HOLD)
		{
			if(GetKeyState(VK_SLOWMOVE)==KEY_FREE)
			{
				PlayerShadowX[num]=PlayerShadowX[num]+PlayerHiSpeed;
			}
			else
			{
				PlayerShadowX[num]=PlayerShadowX[num]+PlayerLowSpeed;
			}
		}
		if(GetKeyState(VK_RIGHT)==KEY_PUSH || GetKeyState(VK_RIGHT)==KEY_HOLD)
		{
			if(GetKeyState(VK_SLOWMOVE)==KEY_FREE)
			{
				PlayerShadowX[num]=PlayerShadowX[num]-PlayerHiSpeed;
			}
			else
			{
				PlayerShadowX[num]=PlayerShadowX[num]-PlayerLowSpeed;
			}
		}

		if(GetKeyState(VK_UP)==KEY_PUSH || GetKeyState(VK_UP)==KEY_HOLD)
		{
			if(GetKeyState(VK_SLOWMOVE)==KEY_FREE)
			{
				PlayerShadowY[num]=PlayerShadowY[num]+PlayerHiSpeed;
			}
			else
			{
				PlayerShadowY[num]=PlayerShadowY[num]+PlayerLowSpeed;
			}
		}
		if(GetKeyState(VK_DOWN)==KEY_PUSH || GetKeyState(VK_DOWN)==KEY_HOLD)
		{
			if(GetKeyState(VK_SLOWMOVE)==KEY_FREE)
			{
				PlayerShadowY[num]=PlayerShadowY[num]-PlayerHiSpeed;
			}
			else
			{
				PlayerShadowY[num]=PlayerShadowY[num]-PlayerLowSpeed;
			}
		}
yield;
}
}
