void AIStateGroundAnimalWander::Update(float delta)
{
	switch (mCurrentInternalState)
	{
		case kMoving:
		{
			m_npc->SetMaxVelocityX(mOriginalMaxVelocityX);
			m_npc->m_resistance.X = 0.9f;
			UpdateMoving(delta);
			break;
		}
		case kResting:
		{
			m_npc->SetMaxVelocityX(mOriginalMaxVelocityX);
			m_npc->m_resistance.X = 0.9f;
			UpdateResting(delta);
			break;
		}
		case kRunningFromPlayer:
		{
			m_npc->SetMaxVelocityX(mOriginalMaxVelocityX * 3.0f);
			m_npc->m_resistance.X = 0.97f;
			UpdateRunningFromPlayer(delta);
			break;
		}
	}
}
示例#2
0
void MapActor::Update(void)
{
	mSprActor.Update();

	if(mAImode == AI_IDLE)
	{
		UpdateAIMoving();
	}

	if(mAImode == AI_NONE || mAImode == AI_IDLE)
	{
		UpdateMoving();
	}
}