예제 #1
0
파일: cDetectNpc.cpp 프로젝트: jangchan/TR2
void cDetectNpc::DoDisComport()
{
	cPlayer* pPlayer = PlayerManager()->FindPlayer( m_dwTagetPlayerPKey );
	//탐지된 대상이 나가거나 없어짐
	if( NULL == pPlayer || pPlayer->GetIsDead() )
	{
		InitDetect();
		m_pFsmClass->TranslateState( EVENT_PLAYER_RUNAWAY );
		return;
	}
	//NPC 탐지 범위 밖으로 플레이어가 도망갔는지 체크
	DWORD dwPlayerPos = pPlayer->GetPos();
	int nDiff1 = ( dwPlayerPos % COL_LINE ) - ( m_dwPos % COL_LINE );
	int nDiff2 = ( dwPlayerPos / COL_LINE ) - ( m_dwPos / COL_LINE );
	if( abs( nDiff1 ) > 1 || abs( nDiff2 ) > 1 )
	{
		InitDetect();
		m_pFsmClass->TranslateState( EVENT_PLAYER_RUNAWAY );
		return;
	}
	//플레이어가 도망가지 않고 계속 있으면 NPC가 화냄 상태로
	++m_byDisComportIndex;
	if( MAX_DISCOMPORT_INDEX == m_byDisComportIndex )
	{
		m_byDisComportIndex = 0;
		m_pFsmClass->TranslateState( EVENT_DISCOMPORT_INDEX );
	}
}
예제 #2
0
GameStageX::GameStageX(SDL_Renderer *render){
    renderer = render;
    this->hasGameStarted = false;
    map = new MapManager("1");
    bgScroller = new BackgroundScroller(imageName1,imageName2);
    screen = new ScreenManager(0,bgScroller->getBgWidth(),bgScroller->getBgHeight(),renderer);
    plyrMgr = PlayerManager(screen);
    plane = new PlaneManager(1);
    itemMgr = new ItemManager(renderer);
    itemMgr->addItems(map);
    this->levelCompleted = false;
}
예제 #3
0
PlayerManager PlayerListManager::GetPlayerManager() {
	return PlayerManager();
}
예제 #4
0
파일: cDetectNpc.cpp 프로젝트: jangchan/TR2
void cDetectNpc::DoDetect()
{
	PlayerManager()->DetectPlayerFromNpc( this );
}