kflorence / beaming

Beaming is a free, open source puzzle game that involves directing beams through a hexagonal grid.
https://kflorence.github.io/beaming/
Other
1 stars 0 forks source link

Refactor user interactions. Fixes #2 #9

Closed kflorence closed 8 months ago

kflorence commented 8 months ago

Refactored all interactions to use pointer events instead of mouse and touch events. Implemented pinch zooming for multi-touch enabled devices and re-implemented pan support for pointer events.

The EventListener class has been refactored to allow defining an element per event. It also allows defining options on initialization or when adding events.

Events specific to Puzzle were moved out of index and into the Puzzle class. Other miscellaneous interactions were better organized into other files.

Modifier selection now provides haptic feedback on touch devices. The concept of toggling a modifier has been introduced, which can allow for the toggling of modifier state based on interaction. For example, middle clicking on a modifier with a mouse will toggle it as will triggering a pointer down on a modifier followed by a pointer leave. For now, this behavior is only used to toggle the rotation direction of the rotate modifier, but it could be used for other things in the future.

The header/footer drop-shadows now correctly always overlay the canvas area.