A fancy new radial menu! |
tl;dr: Last week I created a radial-menu system, an info-panel system, and I added support for bot tap-to-select, which works well for any camera zoom and when multiple bots overlap.
What happened last week?
Highlights
- I added support for bot tap-to-select, which works for any camera zoom and when multiple tappable objects overlap.
- I wrote a separate post describing the problems and solutions in my new tap-to-select system.
- I created a radial-menu system.
- I created an info-panel component.
- I made many updates to bot selection and bot camera swaps.
Laundry list
Mouse-detection working at different zoom levels by using both a level-space collision-shape and a screen-space radius. |
- Better tap-to-select:
- Start adding support for defining a screen-space-click-radius for LevelControls.
- Start adding support for clicking on characters.
- Add a system for choosing the closest pressed LevelControl.
- Add a fallback for choosing the closest LevelControl when zoomed-out.
- Add support for drawing an annotation for the character's pointer-detector screen-radius.
- Hook-up bot-selection with the new tap-to-select system.
- Remove the old bot-selection system.
- Fix an issue with a bot being selected on touch-down and then immediately selecting a navigation target on touch-up.
- Fix a regression with camera-swap when selecting a bot with a tap.
- Fix an issue with touch-move still firing when _ignore_next_pointer_release is true.
- Fix cursor-update to also work with screen-radius.
- Show a highlight/outline for a bot when the touch/cursor is over it.
- Fix screen-radius to account for GUI scale factor due to screen resizing.
- Radial menu:
- Create a radial-menu widget.
- Add support for radial-menu-item IDs to be either Strings or ints.
- Fix an issue with RadialMenu position assignment.
- Fix an issue with calculating radial-menu-item size.
- Fix some issues with radial menu scaling.
- Fix issues with radial-menu touch-up callbacks not firing.
- Adjust radial-menu params.
- Fix an issue with the radial-menu center area not being responsive to the camera zoom.
- Disable bot touch-tracking when the radial menu is open.
- Update radial-menu to configure each of its sub-controls as exclusively-included for touch-tracking.
- Info-panel component:
- Create a new info-panel system.
- Add support for closing info-panels when tapping anywhere in the level.
- Bot/station-selection and camera-swap updates:
- Add support for transitioning station overlay-button opacity depending on the station's current position in the viewport.
- Now they are always visible, and they just fade-out when they’re less in focus.
- They used to only be visible when hovering a mouse or touch over the station area.
- Have the station overlay button opacity fade-out faster.
- Move logic for highlight/opacity updates based-on viewport position from OverlayButtonPanel to Station.
- Create a new OutlineableAnimatedSprite.
- Add support for highlighting a station with an outline depending on its proximity to the center of the screen.
- Add support for showing a pointing-hand cursor when hovering over LevelButtons.
- Add support for updating the station highlight when it, or one of its buttons, is hovered.
- Update bot and station selection logic:
- Deselect other bots/stations
- Toggle info-panel display
- Adjust highlight/outline
- Miscellaneous:
- Fix a bug where different instances of ShapedLevelControls were sharing the same shape.
- Spend some time planning new gameplay features.
- Installed Unreal Engine.
- Fix a race-condition with the CharacterPositionAnnotator when closing the level.
- Planned updates to bot/station selection.
- Planned a new radial menu.
- Add support for tracking when a single-touch becomes a multi-touch.
- Configure some global meteor-power colors.
- Add support for querying a character's position in global / screen space.
- Refactor how command and cost IDs are configured.
- Configure descriptions for each command type; configure additional command types.
- Fix a regression in constructor-bot configuration.
- Fix an issue with referencing freed LevelControls.
- Fix an issue with LevelControl scaling.
- Add support for dynamically disabling touch-tracking for a LevelControl.
- Add support for configuring controls to be excluded or included-exclusively (excluding all others) for touch-tracking.
What's next?
- Some more camera-transition fixes for the new bot-selection scheme.
- Create bot and station command art.
- Configure costs and descriptions for commands and info panels.
- Hook-up legacy command system with the new radial-menu and bot-selection system.
🎉 Cheers!
Comments
Post a Comment