Esempio n. 1
0
void SceneCamera::BrainOrder(const State& state)
{
    if (state.GetStateType() == (int)State::TYPE::PAUSE )
    {
        if (state.IsNew())
        {
            SwitchCameraMode(CONTROL_TYPE::CHARACTER);
        }
    }
    
    if (state.GetStateType() == (int)State::TYPE::MOTION )
    {
        if (state.IsNew())
        {
            SwitchCameraMode(CONTROL_TYPE::CHARACTER);
        }
        
        Motion* motion = (Motion*)&state;
        
        cameraControl.Move(motion->GetSpeed(), motion->GetDir());
    }
    
     if (state.GetStateType() == (int)State::TYPE::SPACE_LOC ) {
         
         SpaceLocation* space_loc = (SpaceLocation*)&state;
         
         if (state.IsNew())
         {
             SwitchCameraMode(CONTROL_TYPE::AUTO_CONTROL);
         }
  
            ((CameraAutoControl*)control[currentType])->SetPosition(space_loc->GetPos());
            ((CameraAutoControl*) control[currentType])->SetDirection(space_loc->GetDir());
     }
}