#include "Phase.h"
#include "RK.h"
#include "FPS.h"
 
namespace Sequence{
 
Phase::Phase(void){
	//入力クラスのインスタンスを生成
	for(int i=0; i<CONTROL_NUM; i++){
		control[i] = new Input();
	}
	printf("\nCreate Phase");
}
Phase::~Phase(void){
	//入力クラスのインスタンスを削除
	for(int i=0; i<CONTROL_NUM; i++){
		delete control[i];
	}
	printf("\nDelete Phase");
}
 
Phase* Phase::loop(){
	this->init();//初期化
	Phase* next = this;
	//ループ
	while( ProcessMessage() == 0 ){
		ClearDrawScreen();//描画画面をクリア
		if(CheckHitKey( KEY_INPUT_ESCAPE )) break;//ESCで終了
 
		next = this->draw();	//ここを継承先で書かせる
 
		DrawFps(0,0);
		ScreenFlip();	//描画反映
 
		if(next != this) break;
	}
	return next;
}
 
void Phase::updateInputAll(){	//すべてのコントローラの入力を更新
	for(int i=0; i<CONTROL_NUM; i++){
		control[i]->updateInput();
	}
}
bool Phase::isInputAnyControl(int input){	//どれかのコントローラで指定の入力があるか
	for(int i=0; i<CONTROL_NUM; i++){
		if( control[i]->isInput(input) ) return true;
	}
	return false;
}
 
}