예제 #1
0
파일: Loader.cs 프로젝트: Taikatou/MVC-RPG
        public static InputListenerManager LoadInputManager()
        {
            InputListenerManager input_manager = new InputListenerManager();
            var mouse_listener = input_manager.AddListener(new MouseListenerSettings());

            mouse_listener.MouseClicked += (sender, args) =>
            {
                Debug.WriteLine("Click here: " + args.Position);
                Game.Instance.hud?.Click(args.Position);
            };
            var keyboard_listener = input_manager.AddListener(new KeyboardListenerSettings());

            keyboard_listener.KeyPressed += (sender, args) =>
            {
                KeyAction(args.Key, true);
            };
            keyboard_listener.KeyReleased += (sender, args) =>
            {
                KeyAction(args.Key, false);
            };
            var game_pad_listener = input_manager.AddListener(new GamePadListenerSettings(PlayerIndex.One));

            game_pad_listener.ButtonDown += (sender, args) =>
            {
                GamePadButton(args.Button, true);
            };
            game_pad_listener.ButtonUp += (sender, args) =>
            {
                GamePadButton(args.Button, false);
            };

            return(input_manager);
        }
예제 #2
0
 /// <summary>
 /// Allows the game to perform any initialization it needs to before starting to run.
 /// This is where it can query for any required services and load any non-graphic
 /// related content.  Calling base.Initialize will enumerate through any components
 /// and initialize them as well.
 /// </summary>
 protected override void Initialize() {
     // TODO: Add your initialization logic here
     inputManager = new InputListenerManager();
     this.IsMouseVisible = true;
     currentScreen = new Menu();
     base.Initialize();
 }
예제 #3
0
 private void OnDestory()
 {
     Instance = null;
     InputListenerManager.UnInputRegister(typeof(UIConfirmBlock));
     InputListenerManager.UnInputRegister(Button_LeftMove.gameObject);
     InputListenerManager.UnInputRegister(Button_RightMove.gameObject);
     InputListenerManager.UnInputRegister(Button_Confire.gameObject);
 }
예제 #4
0
        static InputManager()
        {
            _input = new InputListenerManager();
            _events = new EventsContainer(_input);

            _handledKeys = new Dictionary<Keys, bool>();
            _handledMouseButtons = new Dictionary<MouseButton, bool>();
        }
예제 #5
0
    public void OnDestroy()
    {
        if (_scroll_View != null)
        {
            _scroll_View.onValueChanged.RemoveListener(OnSliderValueChange);
        }

        InputListenerManager.UnRegisterTouchUpEvent(OnRelease);

        _callback = null;
    }
예제 #6
0
    public void Start()
    {
        _scroll_View = gameObject.GetComponent <ScrollRect>();

        if (_scroll_View != null)
        {
            _scroll_View.onValueChanged.AddListener(OnSliderValueChange);
        }

        OnRelease();
        InputListenerManager.RegisterTouchUpEvent(OnRelease);
    }
예제 #7
0
        public GuiManager(ViewportAdapter viewportAdapter, GraphicsDevice graphicsDevice)
        {
            Layout = new GuiGridLayout();

            _viewportAdapter = viewportAdapter;
            _inputManager = new InputListenerManager(viewportAdapter);
            _spriteBatch = new SpriteBatch(graphicsDevice);

            var mouseListener = _inputManager.AddListener<MouseListener>();
            mouseListener.MouseMoved += OnMouseMoved;
            mouseListener.MouseDown += (sender, args) => Layout.OnMouseDown(this, args);
            mouseListener.MouseUp += (sender, args) => Layout.OnMouseUp(this, args);
        }
예제 #8
0
        protected override void Initialize()
        {
            _inputManager = new InputListenerManager();
            var mouseListener    = _inputManager.AddListener(new MouseListenerSettings());
            var keyboardListener = _inputManager.AddListener(new KeyboardListenerSettings());

            keyboardListener.KeyPressed += (sender, args) =>
            {
                if (args.Key == Keys.Escape)
                {
                    Exit();
                }
            };

            mouseListener.MouseClicked       += (sender, args) => LogMessage("{0} mouse button clicked", args.Button);
            mouseListener.MouseDoubleClicked += (sender, args) => LogMessage("{0} mouse button double-clicked", args.Button);
            mouseListener.MouseDown          += (sender, args) => LogMessage("{0} mouse button down", args.Button);
            mouseListener.MouseUp            += (sender, args) => LogMessage("{0} mouse button up", args.Button);
            mouseListener.MouseDrag          += (sender, args) => LogMessage("Mouse dragged");
            mouseListener.MouseWheelMoved    += (sender, args) => LogMessage("Mouse scroll wheel value {0}", args.ScrollWheelValue);

            keyboardListener.KeyPressed  += (sender, args) => LogMessage("{0} key pressed", args.Key);
            keyboardListener.KeyReleased += (sender, args) => LogMessage("{0} key released", args.Key);
            keyboardListener.KeyTyped    += (sender, args) =>
            {
                if (args.Key == Keys.Back && _typedString.Length > 0)
                {
                    _typedString = _typedString.Substring(0, _typedString.Length - 1);
                }
                else if (args.Key == Keys.Enter)
                {
                    LogMessage(_typedString);
                    _typedString = string.Empty;
                }
                else
                {
                    _typedString += args.Character?.ToString() ?? "";
                }
            };

            LogMessage("Do something with the mouse or keyboard...");

            base.Initialize();
        }
        protected override void Initialize()
        {
            _inputManager = new InputListenerManager();
            var mouseListener = _inputManager.AddListener(new MouseListenerSettings());
            var keyboardListener = _inputManager.AddListener(new KeyboardListenerSettings());

            keyboardListener.KeyPressed += (sender, args) =>
            {
                if (args.Key == Keys.Escape)
                    Exit();
            };

            mouseListener.MouseClicked += (sender, args) => LogMessage("{0} mouse button clicked", args.Button);
            mouseListener.MouseDoubleClicked += (sender, args) => LogMessage("{0} mouse button double-clicked", args.Button);
            mouseListener.MouseDown += (sender, args) => LogMessage("{0} mouse button down", args.Button);
            mouseListener.MouseUp += (sender, args) => LogMessage("{0} mouse button up", args.Button);
            mouseListener.MouseDragged += (sender, args) => LogMessage("Mouse dragged");
            mouseListener.MouseWheelMoved += (sender, args) => LogMessage("Mouse scroll wheel value {0}", args.ScrollWheelValue);

            keyboardListener.KeyPressed += (sender, args) => LogMessage("{0} key pressed", args.Key);
            keyboardListener.KeyReleased += (sender, args) => LogMessage("{0} key released", args.Key);
            keyboardListener.KeyTyped += (sender, args) =>
            {
                if (args.Key == Keys.Back && _typedString.Length > 0)
                {
                    _typedString = _typedString.Substring(0, _typedString.Length - 1);
                }
                else if (args.Key == Keys.Enter)
                {
                    LogMessage(_typedString);
                    _typedString = string.Empty;
                }
                else
                {
                    _typedString += args.Character != null ? args.Character.ToString() : "";
                }
            };

            LogMessage("Do something with the mouse or keyboard...");

            base.Initialize();
        }
예제 #10
0
        protected override void Initialize()
        {
            Screens = new List<ObjectToDraw>[] { titlescreen.drawItems, gameview.drawItems, gamecode.drawItems, levelselect.drawItems };
            _inputManager = new InputListenerManager();

            GAMESTATE = GameState.TITLESCREEN;
            window_width = graphics.GraphicsDevice.DisplayMode.Width;
            window_height = graphics.GraphicsDevice.DisplayMode.Height;
            graphics.PreferredBackBufferHeight = window_height;
            graphics.PreferredBackBufferWidth = window_width;
            graphics.IsFullScreen = false;

            var form = (System.Windows.Forms.Form)System.Windows.Forms.Form.FromHandle(Window.Handle);
            form.WindowState = System.Windows.Forms.FormWindowState.Maximized;

            Window.IsBorderless = true;


            graphics.ApplyChanges();
            IsMouseVisible = true;

            base.Initialize();
        }
예제 #11
0
        public GuiManager(ViewportAdapter viewportAdapter, GraphicsDevice graphicsDevice)
        {
            _viewportAdapter = viewportAdapter;
            _inputManager = new InputListenerManager(viewportAdapter);
            _spriteBatch = new SpriteBatch(graphicsDevice);

            Controls = new List<GuiControl>();

            var mouseListener = _inputManager.AddListener<MouseListener>();
            mouseListener.MouseMoved += (sender, args) =>
            {
                if (_focusedControl != null)
                    _focusedControl.OnMouseLeave(this, args);

                _focusedControl = FindFocusedControl(args.Position);

                if (_focusedControl != null)
                    _focusedControl.OnMouseEnter(this, args);

                DelegateMouseEvent(args, c => c.OnMouseMoved(this, args));
            };
            mouseListener.MouseDown += (sender, args) => DelegateMouseEvent(args, c => c.OnMouseDown(this, args));
            mouseListener.MouseUp += (sender, args) => DelegateMouseEvent(args, c => c.OnMouseUp(this, args));
        }
예제 #12
0
    private void Awake()
    {
        Instance = this;

        Clear();

        InputListenerManager.RegisterInputEvent(Button_LeftMove.gameObject, new InputCallback()
        {
            PressCallBack = () =>
            {
                CurrentButtonState = InputButtonState.Left;
            },
            CancelCallBack = (o) =>
            {
                if (CurrentButtonState == InputButtonState.Left)
                {
                    CurrentButtonState = InputButtonState.None;
                }
            }
        }, InputListenerManager.PriorityType.UITigger);

        InputListenerManager.RegisterInputEvent(Button_RightMove.gameObject, new InputCallback()
        {
            PressCallBack = () =>
            {
                CurrentButtonState = InputButtonState.Right;
            },
            CancelCallBack = (o) =>
            {
                if (CurrentButtonState == InputButtonState.Right)
                {
                    CurrentButtonState = InputButtonState.None;
                }
            }
        }, InputListenerManager.PriorityType.UITigger);


        InputListenerManager.RegisterInputEvent(Button_Confire.gameObject, new InputCallback()
        {
            ClickCallBack = () =>
            {
                if (CharacterControl.Instance != null)
                {
                    CharacterControl.Instance.OnConfire();
                }
            }
        }, InputListenerManager.PriorityType.UITigger);


        var input = new InputCallback()
        {
            ClickCallBack = () =>
            {
                if (IsShow)
                {
                    NovelsManager.Instance.IsAcceptConfirm = true;
                }
            }
        };


        InputListenerManager.RegisterInputEvent(typeof(UIConfirmBlock), input, InputListenerManager.PriorityType.UI);
    }
예제 #13
0
        private void SetUpInput()
        {
            _inputManager = new InputListenerManager();

            var up = new Vector2(0, -250);
            var right = new Vector2(250, 0);

            //camera movement
            var keyboardListener = _inputManager.AddListener<KeyboardListener>();
            var mouseListener = _inputManager.AddListener<MouseListener>();

            keyboardListener.KeyPressed += (sender, args) =>
            {
                switch (args.Key)
                {
                    case Keys.Escape:
                        Exit();
                        break;

                    case Keys.Q:                        
                        _cameraRotation += 1;
                        break;
                    case Keys.W:
                        _cameraRotation -= 1;
                        break;

                    case Keys.Up:
                        _cameraDirection += up;
                        break;
                    case Keys.Down:
                        _cameraDirection += -up;
                        break;
                    case Keys.Left:
                        _cameraDirection += -right;
                        break;
                    case Keys.Right:
                        _cameraDirection += right;
                        break;
                }
            };

            keyboardListener.KeyReleased += (sender, args) =>
            {
                switch (args.Key)
                {
                    case Keys.Q:
                        _cameraRotation -= 1;
                        break;
                    case Keys.W:
                        _cameraRotation += 1;
                        break;

                    case Keys.Up:
                        _cameraDirection -= up;
                        break;
                    case Keys.Down:
                        _cameraDirection -= -up;
                        break;
                    case Keys.Left:
                        _cameraDirection -= -right;
                        break;
                    case Keys.Right:                       
                        _cameraDirection -= right;
                        break;
                }
            };

            // zoom
            mouseListener.MouseWheelMoved += (sender, args) =>
            {
                _camera.Zoom += args.ScrollWheelDelta * 0.001f;
            };

            //// look at
            //mouseListener.MouseUp += (sender, args) =>
            //{
            //    if (args.Button == MouseButton.Left)
            //    {
            //        var p = _viewportAdapter.PointToScreen(args.Position);
            //        Trace.WriteLine(string.Format("{0} => {1}", args.Position, p));
            //    }
            //};

            mouseListener.MouseDown += (sender, args) => Trace.WriteLine("MouseDown");
            mouseListener.MouseUp += (sender, args) => Trace.WriteLine("MouseUp");
            mouseListener.MouseClicked += (sender, args) => Trace.WriteLine("MouseClicked");
            mouseListener.MouseDoubleClicked += (sender, args) => Trace.WriteLine("MouseDoubleClicked");
            mouseListener.MouseWheelMoved += (sender, args) => Trace.WriteLine(string.Format("MouseWheelMoved {0}", args.ScrollWheelValue));
            mouseListener.MouseDragged += (sender, args) => Trace.WriteLine("MouseDragged");
        }
예제 #14
0
 public InputManager()
 {
     input_manager = Loader.LoadInputManager();
 }
예제 #15
0
 public Listeners()
 {
     _inputManager = new InputListenerManager();
 }
예제 #16
0
 internal EventsContainer(InputListenerManager input)
 {
     _keyboard = input.AddListener<KeyboardListener>();
     _mouse = input.AddListener<MouseListener>();
 }