Ejemplo n.º 1
0
        public override void Update()
        {
            base.Update();

            if (IsMouseOverOrKeyboardActive())
            {
                if (m_ScaleAnimationState == ScaleAnimationState.None) 
                {
                    m_ScaleAnimationCurrentTime = 0;
                    m_ScaleAnimationState = ScaleAnimationState.ScaleIn;
                }

                if (m_ScaleAnimationState == ScaleAnimationState.ScaleOut)
                {
                    m_ScaleAnimationCurrentTime = MyGuiConstants.BUTTON_HOVER_SCALE_TIME - m_ScaleAnimationCurrentTime;
                    m_ScaleAnimationState = ScaleAnimationState.ScaleIn;
                }
            }
            else
            {
                if (m_ScaleAnimationState == ScaleAnimationState.ScaleIn)
                {
                    m_ScaleAnimationCurrentTime = MyGuiConstants.BUTTON_HOVER_SCALE_TIME - m_ScaleAnimationCurrentTime;
                    m_ScaleAnimationState = ScaleAnimationState.ScaleOut;
                }

                if (m_ScaleAnimationState == ScaleAnimationState.Scaled)
                {
                    m_ScaleAnimationCurrentTime = MyGuiConstants.BUTTON_HOVER_SCALE_TIME;
                    m_ScaleAnimationState = ScaleAnimationState.ScaleOut;
                }
            }
    
            int timeDelta = MyMinerGame.TotalGamePlayTimeInMilliseconds - m_LastTime;

            switch (m_ScaleAnimationState)
            {
                case ScaleAnimationState.ScaleIn:
                    m_ScaleAnimationCurrentTime += timeDelta;
                    if (m_ScaleAnimationCurrentTime >= MyGuiConstants.BUTTON_HOVER_SCALE_TIME)
                    {
                        m_ScaleAnimationCurrentTime = MyGuiConstants.BUTTON_HOVER_SCALE_TIME;
                        m_ScaleAnimationState = ScaleAnimationState.Scaled;
                    }

                    m_scale = 1.0f + (MyGuiConstants.BUTTON_HOVER_SCALE - 1.0f) * m_ScaleAnimationCurrentTime / MyGuiConstants.BUTTON_HOVER_SCALE_TIME;

                    break;

                case ScaleAnimationState.Scaled:
                    m_scale = MyGuiConstants.BUTTON_HOVER_SCALE;

                    if (m_mouseButtonPressed)
                    {
                        m_scale *= MyGuiConstants.BUTTON_PRESSED_SCALE;
                    }
            
                    break;

                case ScaleAnimationState.ScaleOut:
                    m_ScaleAnimationCurrentTime -= timeDelta;
                    if (m_ScaleAnimationCurrentTime <= 0)
                    {
                        m_ScaleAnimationCurrentTime = 0;
                        m_ScaleAnimationState = ScaleAnimationState.None;
                    }

                    m_scale = 1.0f + (MyGuiConstants.BUTTON_HOVER_SCALE - 1.0f) * m_ScaleAnimationCurrentTime / MyGuiConstants.BUTTON_HOVER_SCALE_TIME;

                    break;


                default:
                    break;
            }


            m_LastTime = MyMinerGame.TotalGamePlayTimeInMilliseconds;
        }
Ejemplo n.º 2
0
        public override void Update()
        {
            base.Update();

            if (IsMouseOverOrKeyboardActive())
            {
                if (m_ScaleAnimationState == ScaleAnimationState.None)
                {
                    m_ScaleAnimationCurrentTime = 0;
                    m_ScaleAnimationState       = ScaleAnimationState.ScaleIn;
                }

                if (m_ScaleAnimationState == ScaleAnimationState.ScaleOut)
                {
                    m_ScaleAnimationCurrentTime = MyGuiConstants.BUTTON_HOVER_SCALE_TIME - m_ScaleAnimationCurrentTime;
                    m_ScaleAnimationState       = ScaleAnimationState.ScaleIn;
                }
            }
            else
            {
                if (m_ScaleAnimationState == ScaleAnimationState.ScaleIn)
                {
                    m_ScaleAnimationCurrentTime = MyGuiConstants.BUTTON_HOVER_SCALE_TIME - m_ScaleAnimationCurrentTime;
                    m_ScaleAnimationState       = ScaleAnimationState.ScaleOut;
                }

                if (m_ScaleAnimationState == ScaleAnimationState.Scaled)
                {
                    m_ScaleAnimationCurrentTime = MyGuiConstants.BUTTON_HOVER_SCALE_TIME;
                    m_ScaleAnimationState       = ScaleAnimationState.ScaleOut;
                }
            }

            int timeDelta = MyMinerGame.TotalGamePlayTimeInMilliseconds - m_LastTime;

            switch (m_ScaleAnimationState)
            {
            case ScaleAnimationState.ScaleIn:
                m_ScaleAnimationCurrentTime += timeDelta;
                if (m_ScaleAnimationCurrentTime >= MyGuiConstants.BUTTON_HOVER_SCALE_TIME)
                {
                    m_ScaleAnimationCurrentTime = MyGuiConstants.BUTTON_HOVER_SCALE_TIME;
                    m_ScaleAnimationState       = ScaleAnimationState.Scaled;
                }

                m_scale = 1.0f + (MyGuiConstants.BUTTON_HOVER_SCALE - 1.0f) * m_ScaleAnimationCurrentTime / MyGuiConstants.BUTTON_HOVER_SCALE_TIME;

                break;

            case ScaleAnimationState.Scaled:
                m_scale = MyGuiConstants.BUTTON_HOVER_SCALE;

                if (m_mouseButtonPressed)
                {
                    m_scale *= MyGuiConstants.BUTTON_PRESSED_SCALE;
                }

                break;

            case ScaleAnimationState.ScaleOut:
                m_ScaleAnimationCurrentTime -= timeDelta;
                if (m_ScaleAnimationCurrentTime <= 0)
                {
                    m_ScaleAnimationCurrentTime = 0;
                    m_ScaleAnimationState       = ScaleAnimationState.None;
                }

                m_scale = 1.0f + (MyGuiConstants.BUTTON_HOVER_SCALE - 1.0f) * m_ScaleAnimationCurrentTime / MyGuiConstants.BUTTON_HOVER_SCALE_TIME;

                break;


            default:
                break;
            }


            m_LastTime = MyMinerGame.TotalGamePlayTimeInMilliseconds;
        }