示例#1
0
    private void HandleOnAttack(ZMInputEventArgs args)
    {
        if (IsValidInputControl(args.input))
        {
            if (args.input.Pressed)
            {
                var dotX       = Vector2.Dot(_movement, Vector2.right);
                var dotY       = Vector2.Dot(_movement, Vector2.up);
                var notifyArgs = new IntEventArgs(0);

                if (dotY < -DOT_THRESHOLD)
                {
                    // Excepting plunge case.
                    _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnPlungeEvent);
                }
                else if (dotX > DOT_THRESHOLD)
                {
                    notifyArgs.value = 1;
                    _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnAttackEvent, notifyArgs);
                }
                else if (dotX < -DOT_THRESHOLD)
                {
                    notifyArgs.value = -1;
                    _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnAttackEvent, notifyArgs);
                }
                else
                {
                    // Default lunge case.
                    _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnAttackEvent, notifyArgs);
                }
            }
        }
    }
示例#2
0
    private void BroadcastDigitalGamepadEvents(InputDevice device, int userIndex)
    {
        var startInput = new ZMInput(device.MenuWasPressed, userIndex);
        var startArgs  = new ZMInputEventArgs(startInput);

        Notifier.SendEventNotification(OnAction1, GetInputForControl(device.Action1, userIndex));
        Notifier.SendEventNotification(OnAction2, GetInputForControl(device.Action2, userIndex));
        Notifier.SendEventNotification(OnAction3, GetInputForControl(device.Action3, userIndex));
        Notifier.SendEventNotification(OnAction4, GetInputForControl(device.Action4, userIndex));

        Notifier.SendEventNotification(OnLeftBumper, GetInputForControl(device.LeftBumper, userIndex));
        Notifier.SendEventNotification(OnLeftTrigger, GetInputForControl(device.LeftTrigger, userIndex));
        Notifier.SendEventNotification(OnRightBumper, GetInputForControl(device.RightBumper, userIndex));
        Notifier.SendEventNotification(OnRightTrigger, GetInputForControl(device.RightTrigger, userIndex));

        Notifier.SendEventNotification(OnLeftAnalogStickButton, GetInputForControl(device.LeftStickButton, userIndex));
        Notifier.SendEventNotification(OnRightAnalogStickButton, GetInputForControl(device.RightStickButton, userIndex));

        Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.AnyButton, userIndex));
        Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.LeftBumper, userIndex));
        Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.LeftTrigger, userIndex));
        Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.RightBumper, userIndex));
        Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.RightTrigger, userIndex));
        Notifier.SendEventNotification(OnAnyButton, startArgs);

        Notifier.SendEventNotification(OnStartButton, startArgs);
    }
示例#3
0
    private ZMInputEventArgs GetInputForControl(InputControl control, int userIndex)
    {
        var state = GetStateForControl(control);
        var input = new ZMInput(state, userIndex);
        var args  = new ZMInputEventArgs(input);

        return(args);
    }
示例#4
0
    // Private methods.
    private void HandleOnSelect(ZMInputEventArgs args)
    {
        var input = args.input;

        if (input.Pressed && IsValidInputControl(input) && gameObject.activeSelf)
        {
            HandleMenuSelection();
        }
    }
示例#5
0
 private void HandleOnJump(ZMInputEventArgs args)
 {
     if (IsValidInputControl(args.input))
     {
         if (args.input.Pressed)
         {
             _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnJumpEvent);
         }
     }
 }
示例#6
0
    private void HandleOnAnyButton(ZMInputEventArgs args)
    {
        var input = args.input;

        if (input.Pressed)
        {
            var outArgs = new IntEventArgs(input.ID);

            Notifier.SendEventNotification(AnyInputEvent, outArgs);
        }
    }
示例#7
0
    private void CheckKey(KeyCode code, KeyAction action, ZMInput.State state, EventHandler <ZMInputEventArgs> eventHandler)
    {
        if (action(code))
        {
            var input = GetInputForKeyCode(code, state);
            var args  = new ZMInputEventArgs(input);

            Notifier.SendEventNotification(eventHandler, args);
            Notifier.SendEventNotification(OnAnyKeyPressed, args);
        }
    }
示例#8
0
    protected virtual void HandleOnMoveDown(ZMInputEventArgs args)
    {
        var input = args.input;

        if (IsValidInputControl(input))
        {
            Vector2EventArgs notifyArgs;

            if (input.Pressed || input.Held)
            {
                _movement.y = -1.0f;
                _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnMoveDownEvent);
            }
            else if (input.Released)
            {
                _movement.y = 0.0f;
            }

            notifyArgs = new Vector2EventArgs(_movement);
            _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnMoveEvent, notifyArgs);
        }
    }
示例#9
0
    private void HandleOnMoveRight(ZMInputEventArgs args)
    {
        var input = args.input;

        if (IsValidInputControl(input))
        {
            Vector2EventArgs notifyArgs;

            if (input.Pressed || input.Held)
            {
                _movement.x = 1.0f;
                _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnMoveRightEvent);
            }
            else if (input.Released)
            {
                _movement.x = 0.0f;
            }

            notifyArgs = new Vector2EventArgs(_movement);
            _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnMoveEvent, notifyArgs);
        }
    }
示例#10
0
    protected override void HandleOnMoveDown(ZMInputEventArgs args)
    {
        base.HandleOnMoveDown(args);

        HandleOnAttack(args);
    }
示例#11
0
    // Handlers.
    protected override void HandleOnMoveUp(ZMInputEventArgs args)
    {
        base.HandleOnMoveUp(args);

        HandleOnJump(args);
    }