hyades.screen.menu.Menu.OnActive C# (CSharp) 메소드

OnActive() 공개 메소드

public OnActive ( double elapsed, InputDevice input ) : void
elapsed double
input InputDevice
리턴 void
        public override void OnActive(double elapsed, InputDevice input)
        {
            float curr_input = Math.Abs(input.LeftThumbStick.Y) > Math.Abs(input.RightThumbStick.Y) ? input.LeftThumbStick.Y : input.RightThumbStick.Y;
            if (Math.Abs(curr_input) > epsilon)
                time_1 += (float)elapsed;
            else
                time_1 = 0;

            if (curr_input > epsilon && prev_direction > epsilon
             || curr_input < -epsilon && prev_direction < -epsilon)
                time_2 += (float)elapsed;
            else
                time_2 = 0;

            if ((time_1 > switch_delay && time_2 > scroll_delay) || (Math.Abs(prev_direction) < epsilon && Math.Abs(curr_input) > epsilon))
            {
                if (curr_input > epsilon)
                    curr_option--;
                if (curr_input < -epsilon)
                    curr_option++;

                if (curr_option < 0)
                    curr_option = options.Length - 1;

                curr_option %= options.Length;
                time_1 = 0;
            }

            if (input.IsPressed(Buttons.A))
            {
                TransitionTo(options[curr_option].screen);
            }

            prev_direction = curr_input;
        }