Hover Effect - UQcsse3200/2024-studio-2 GitHub Wiki

Description

The addButtonElevationEffect method adds a visual hover effect to a specified TextButton. When the user hovers over the button, it slightly elevates and enlarges to indicate interactivity. When the cursor moves away, the button smoothly returns to its original size and position.

Importance

  • It adds brilliance to the UI scheme.
  • Improves the feedback interface for the user.

Parameters

  • button (TextButton): The button to which the hover effect will be applied.

Behavior

  • Hover Initialization: The button moves up by 5 pixels and scales up by 5% when the mouse cursor enters its area.

  • Hover Exit: The button moves back down to its original position and size when the cursor leaves the button area.

Code Implementation (com/csse3200/game/components/mainmenu/MainMenuDisplay.java)

private void addButtonElevationEffect(TextButton button) {
    button.addListener(new ClickListener() {
        @Override
        public void enter(InputEvent event, float x, float y, int pointer, Actor fromActor) {
            button.addAction(Actions.parallel(
                    Actions.moveBy(0, 5, 0.1f),
                    Actions.scaleTo(1.05f, 1.05f, 0.1f)
            ));
            //logger.info("Hover feature activated"); uncomment this if you want to check hover feature
        }

        @Override
        public void exit(InputEvent event, float x, float y, int pointer, Actor toActor) {
            button.addAction(Actions.parallel(
                    Actions.moveBy(0, -5, 0.1f),
                    Actions.scaleTo(1f, 1f, 0.1f)
            ));
        }
    });
}