//====================================-
//プレイヤースクリプト用ライブラリPLIBA
//移動制御関数
//スクリプトにタスクひとつ
//====================================


let m_MoveingStatus =0;
let check_LRmove = false;

//横移動グラフィック変更用

//state_max		移動グラフィックパターン。正面、右、左の三枚の場合は１、正面、右1、右2、左1、左2の場合は２
//count_state	グラフィック一つ当たりのカウント

//横入力でアニメーションさせる場合用のタスクです
//横を入力するとカウントが増減し、一定カウント経過でm_MoveingStatusの値が変化します
//後述の関数でm_MoveingStatusを取得し、アニメーション管理に充ててください

//また、このタスクは複数起動しないで下さい

task initialize_PRIBA_TaskLRMoveStatus(let state_max, let count_state){

	if(check_LRmove){
		private_PRIBA_ErrorDouble("TaskLRMoveStatus");
	}else{
		check_LRmove = true;
	}

	let counter = 0;
	let counter_max = count_state * state_max -1;
	loop{
		alternative( PRIBA_GetStickX() )
		case(-1)	{ counter = PRIBA_GetNumLimited(counter-1, -counter_max ,0, false); }
		case(1)		{ counter = PRIBA_GetNumLimited(counter+1, 0, counter_max , false); }
		case(0)		{ counter += (PRIBA_GetSign( counter ) * (-1)); }

		if( counter > 0 ){
			m_MoveingStatus = 1 + trunc(counter / count_state);
		}
		else if( counter < 0 ){
			m_MoveingStatus = (-1) * (1 + trunc(absolute(counter) / count_state));
		}
		else{
			m_MoveingStatus = 0;
		}

		yield;
	}
	return;

}//end task

function PRIBA_GetLRMoveStatus(){
	return m_MoveingStatus;
}//end function



/*
//移動速度をなめらかに変えるタスク
//（未実装）
task initialize_PRIBA_TaskMoveSpeed01(){


	loop{
		yield;
	}
	return;

}//end task

*/
