Class Input


  • public final class Input
    extends java.lang.Object
    Allows querying input devices like keyboard and mouse, and to set listeners on them.

    An Input object executes in a context of a particular scene.

    • Constructor Detail

      • Input

        public Input​(@NotNull
                     @NotNull java.util.function.Supplier<@NotNull Scene> sceneSupplier)
      • Input

        public Input​(@NotNull
                     @NotNull Scene scene)
    • Method Detail

      • getScene

        @NotNull
        public @NotNull Scene getScene()
      • isKeyDown

        public boolean isKeyDown​(@NotNull
                                 @NotNull Input.Key... keys)
        Checks whether the key (or multiple keys) is currently down.
      • isKeyPressed

        public boolean isKeyPressed​(@NotNull
                                    @NotNull Input.Key... keys)
        Checks whether the key (or multiple keys) was just pressed.
      • getCursorPosition

        @NotNull
        public @NotNull Point getCursorPosition()
        Gets the current mouse cursor position, relative to the scene's bottom left corner.
      • isButtonPressed

        public boolean isButtonPressed​(@NotNull
                                       Input.Button button)
        Checks whether mouse's button is pressed.
      • isCursorCatched

        public boolean isCursorCatched()
        Returns:
        true if the cursor is caught by the game input.
      • onKeyPressed

        @NotNull
        public @NotNull Disposable onKeyPressed​(@NotNull
                                                Input.InputHandler<Input.Key> listener)
        Registers listener to be called when any key is pressed. The pressed key is passed to the listener.
        Returns:
        disposable object that can be used to unregister the listener.
      • onKeyPressed

        @NotNull
        public @NotNull Disposable onKeyPressed​(@NotNull
                                                @NotNull Input.Key key,
                                                @NotNull
                                                @NotNull java.lang.Runnable listener)
        Register listener to be called when a specific key is pressed.
        Returns:
        disposable object that can be used to unregister the listener.
      • onKeyReleased

        @NotNull
        public @NotNull Disposable onKeyReleased​(@NotNull
                                                 Input.InputHandler<Input.Key> listener)
        Registers listener to be called when any key is released. The released key is passed to the listener.
        Returns:
        disposable object that can be used to unregister the listener.
      • onKeyReleased

        @NotNull
        public @NotNull Disposable onKeyReleased​(@NotNull
                                                 @NotNull Input.Key key,
                                                 @NotNull
                                                 @NotNull java.lang.Runnable listener)
        Register listener to be called when a specific key is released.
        Returns:
        disposable object that can be used to unregister the listener.
      • onKeyTyped

        @NotNull
        public @NotNull Disposable onKeyTyped​(@NotNull
                                              Input.InputHandler<java.lang.Character> listener)
        Registers listener to be called when a char is typed.
        Returns:
        disposable object that can be used to unregister the listener.
      • onMouseMoved

        @NotNull
        public @NotNull Disposable onMouseMoved​(@NotNull
                                                Input.InputHandler2<java.lang.Integer,​java.lang.Integer> listener)
        Registers listener to be called when mouse cursor is moved.
        Returns:
        disposable object that can be used to unregister the listener.
      • onMouseDragged

        @NotNull
        public @NotNull Disposable onMouseDragged​(@NotNull
                                                  Input.InputHandler2<java.lang.Integer,​java.lang.Integer> listener)
        Registers listener to be called when mouse cursor is dragged.
        Returns:
        disposable object that can be used to unregister the listener.
      • onMousePressed

        @NotNull
        public @NotNull Disposable onMousePressed​(@NotNull
                                                  Input.InputHandler3<java.lang.Integer,​java.lang.Integer,​Input.Button> listener)
        Registers listener to be called when mouse button is pressed.
        Returns:
        disposable object that can be used to unregister the listener.
      • onMouseReleased

        @NotNull
        public @NotNull Disposable onMouseReleased​(@NotNull
                                                   Input.InputHandler3<java.lang.Integer,​java.lang.Integer,​Input.Button> listener)
        Registers listener to be called when mouse button is release.
        Returns:
        disposable object that can be used to unregister the listener.
      • registerListener

        @NotNull
        public @NotNull Disposable registerListener​(@NotNull
                                                    @NotNull KeyboardListener listener)
        Registers keyboard listener to be notified on keyboard events.
        Returns:
        disposable object that can be used to unregister the listener.
      • registerListener

        @NotNull
        public @NotNull Disposable registerListener​(@NotNull
                                                    @NotNull MouseListener listener)
        Registers mouse listener to be notified on mouse events.
        Returns:
        disposable object that can be used to unregister the listener.