GrandLarceny.Player.updateStunned C# (CSharp) 메소드

updateStunned() 개인적인 메소드

private updateStunned ( float a_deltaTime ) : void
a_deltaTime float
리턴 void
        private void updateStunned(float a_deltaTime)
        {
            m_stunnedTimer -= a_deltaTime;
            if (!m_stunnedGravity)
            {
                m_gravity = 0;
            }

            if (m_stunnedDeacceleration)
            {
                if (m_speed.X > 0)
                {
                    m_speed.X = Math.Max(m_speed.X - (DEACCELERATION * a_deltaTime), 0);
                }
                else if (m_speed.X < 0)
                {
                    m_speed.X = Math.Min(m_speed.X + (DEACCELERATION * a_deltaTime), 0);
                }
            }

            if (m_stunnedTimer <= 0)
            {
                m_stunnedTimer = 0;
                m_stunned = false;

                m_stunnedGravity = true;
                m_speed.X = 0;

                if (m_stunnedFlipSprite)
                {
                    m_facingRight = !m_facingRight;
                    m_stunnedFlipSprite = false;
                }

                if (m_collisionShape == null)
                {
                    if (m_stunnedState == State.Hanging)
                    {
                        changeAnimation();

                        m_collisionShape = m_hangHitBox;
                        //m_position.plusYWith(m_standHitBox.m_height / 1.1f);
                        m_lastPosition.Y = m_position.getGlobalY() - 20;
                        if (m_currentState != State.Hanging)
                        {
                            m_lastState = State.Hanging;
                            m_imgOffsetY += m_rollHitBox.m_height / 4f;
                            m_position.plusYWith(m_rollHitBox.m_height / 1.295f - 1);
                            Game.getInstance().m_camera.getPosition().plusYWith(-m_rollHitBox.m_height / 1.295f);
                        }
                        else
                        {
                            m_imgOffsetY += m_standHitBox.m_height / 1.8f;
                        }
                        if (!m_facingRight)
                        {
                            m_imgOffsetX += m_standHitBox.m_width * 1.9f;
                        }

                    }
                    else if (m_stunnedState == State.Rolling || (m_stunnedState == State.Hiding && m_currentHidingImage == DUCKHIDINGIMAGE))
                    {
                        m_collisionShape = m_rollHitBox;
                    }
                    else if (m_stunnedState == State.Slide)
                    {
                        m_collisionShape = m_slideBox;
                    }
                    else
                    {
                        m_collisionShape = m_standHitBox;
                    }
                }
                if (m_currentState == State.Stop)
                {
                    changeAnimation();
                    m_imgOffsetX = 0;
                    m_imgOffsetY = 0;
                }
                m_currentState = m_stunnedState;
            }
        }