//---------------------
//ړ[`
//---------------------

let m_OffsetX;
let m_OffsetY;
let m_ParentPositionX;
let m_ParentPositionY;

let m_Radius;
let m_Angle;
let m_RotateAngle;

//ړ[`A(ǐ)
task main_MoveRoutineA(let offsetx, offsety)
{
	m_OffsetX = offsetx;
	m_OffsetY = offsety;

	loop
	{
		func_GetParentPosition();
		SetX(m_ParentPositionX + m_OffsetX);
		SetY(m_ParentPositionY + m_OffsetY);
		func_SetPosition();
		func_IsEndScroll();
		yield;
	}

}


//ړ[`B(])
task main_MoveRoutineB(let radius, let vangle, let first_angle, let wait_timertick)
{
	
	m_Radius = 0;
	m_Angle = first_angle;
	m_RotateAngle = vangle;

	Rotate();

	loop
	{
		func_GetParentPosition();
		m_Radius += 2;
		if(m_Radius > radius){ m_Radius = radius; }
		m_OffsetX = m_Radius * cos(m_Angle);
		m_OffsetY = m_Radius * sin(m_Angle);
		SetX(m_ParentPositionX + m_OffsetX);
		SetY(m_ParentPositionY + m_OffsetY);
		func_SetPosition();
		func_IsEndScroll();
		yield;
	}

	task Rotate()
	{
		loop{
			wait_WaitWhileFreeze();
			yield;
			if(wait_timertick)
			{
				block_WaitTimerTick(1);
			}
			m_Angle += m_RotateAngle;
		}
	}//end task

}




//yAg̈ʒu擾
function func_GetParentPosition()
{
	m_ParentPositionX = REMY_CommonDataArrayEx_Get("INVADER", "EnemyMovers.PositionX", g_ParentMoverID);
	m_ParentPositionY = REMY_CommonDataArrayEx_Get("INVADER", "EnemyMovers.PositionY", g_ParentMoverID);

}//end function


//ʒu̐ݒ
function func_SetPosition()
{
	REMY_CommonDataArrayEx_Set("INVADER", "Enemies.PositionX", g_EnemyID, GetX());
	REMY_CommonDataArrayEx_Set("INVADER", "Enemies.PositionY", g_EnemyID, GetY());
}//end function

//ʒ[eXg
function func_IsEndScroll()
{
	if(GetX() < GetClipMinX() + 20){ REMY_CommonDataArrayEx_Set("INVADER", "EnemyMovers.CallBack", g_ParentMoverID, _ENEMYMOVERCALL_LEFT_BORDER); }
	if(GetX() > GetClipMaxX() - 20){ REMY_CommonDataArrayEx_Set("INVADER", "EnemyMovers.CallBack", g_ParentMoverID, _ENEMYMOVERCALL_RIGHT_BORDER); }
}//end function




