- Updated
useGamepadButtonMap
to accept a map as a property, so that the bindings are dynamic. - Exposed set of held down buttons in the
GamepadContext
. - Added
vibrate
function to theGamepad
handler.
- Fixed a bug in
Gamepad
, where the gamepad doesn't have a mapping for a given button.
- Improved the audio engine to support independent muting and volume controls.
- Exposed down/pressed key sets in the
KeyboardContext
. - Updated
useKeyboardMap
to support properties, rather than fixed maps. - Update the
target
parameter type foruseUpdateAfter
to accept undefined.
- Fixed a bug caused by
Viewport
not being absolutely positioned.
- Added
isAnyKeyDown
andisAnyKeyPressed
functions to theKeyboard
handler. - Added
useKeySequence
hook for reading a sequence of keypresses in a specified order.
- Added
listen()
function to variable properties.
- Added
useEventHandler
hook, and fixed types inuseEventListeners
. - Fixed the types in
useKeyPressed
anduseKeyAxis
hooks.
- Refactored the gamepad input handler to support axes input.
- Added
useGamepadAxisMap
hook, to map from gamepad axes inputs to virtual inputs. - Renamed
useGamepadMap
touseGamepadButtonMap
, to make it explicitly for buttons. - Refactored the gamepad hooks to take gamepad index as a prop.
- Improved the
useKeyboardMap
types.
- Added multi-channel audio engine, with support for controlling channels independently.
- Added new
ParticleEngine
, replacing existing particle generator. - Refactored
DynamicProperty
to ensure it is initially considered invalidated, even if the underlying property is not.
- Refactored
useProperty
to sync value changes for scalars to the underlying property.
- Added
useBaseStyleProperties
for cleaner handling of base styles. - Added full base styles support to the
Box
component.
- Added support for setting
visible
flags in the node hierarchy, along with auseVisible
hook. - Added visibility support to
BitmapImage
andBitmapSprite
components. - Added
useFlash
hook for easily flashing elements.
- Added support for multi touch pointer events.
- Improved performance by only updating the
BitmapSprite
offset when it's visible on screen. - Improved performance by setting
display: none
on inactive sprite set animations. - Improved the handling of swipe actions.
- Fixed a bug in the handling of nodes, ensuring a name is always provided.
- Hide debug elements for physics bodies by default.
- Fixed a bug in the state machine, ensuring that the age is always zero on the first call of any new state function.
- Added initial support for gamepads, with support for 'standard' gamepad layouts.
- Added
useGamepadMap
hook for easily hooking up gamepads to virtual inputs. - Added
useSequence
hook to iteratively check a set of conditions are met in order. - Added
active
prop toParticleGenerator
component. - Added integration testing framework.
- Fixed a bug in update function processing, where 'after' update functions were sometimes not invoked.
- Improved update function processing to avoid unresolvable cycles.
- Reversed the map used by
useKeyboardMap
. - Refactored
StateMachine
to make age a property.
- Added
offset
androunded
props toNode
, for easier layout of component parts. - Added
entity
prop toCollisionBox
, for passing entities to collision handlers. - Added
useCachedDynamicProperty
as a performance optimization. - Refactored
StateMachine
to avoid performance overhead of the dynamic property. - Limited tick delta to a maximum of one 1/15 of a second, to avoid huge deltas on startup.
- Added support for arbitrary bitmap scaling, via the
factor
prop onBitmapImage
. - Simplified various typings in state machine.
- Fixed development mode motion key binding.
- Removed automatic rounded of positions to whole pixels in
useElement
.
- Added
useIntegerPosition
hook, for rounding positions. - Added
useStateMachine
hook, for building state machines, handy for NPC behaviors. - Added
useMergeProperty
hook, for combining two properties. - Added
useVirtualAction
hook. - Added support for invalidation of dynamic properties.
- Added
maxFallSpeed
option tousePlatformMovement
hook. - Added support for disabling tilemap collisions, using an
active
prop. - Added support for multiple tags in tilemap collisions.
- Added
active
parameter touseKeyboardMap
. - Improved performance of the
BitmapText
component. - Fixed a bug in
Tilemap
where collision boxes didn't align with the tiles.
- Added
BitmapText
component. - Added collision detection to
Tilemap
component. - Added virtual input management, with simple keyboard mapping hook.
- Added support for landscape mobile orientations.
- Added
active
prop toColliderBox
component. - Added
delta
parameter tousePostCollisions
hook. - Added
chance
utility function. - Added
canTurnMidair
config option tousePlatformMovement
. - Pass
tags
as a property when registering colliders, so they can change. - Automatically pause the engine when the window loses focus.
- Improved collision handling.
- Improved virtual input handling, to be temporal based.
- Improved support for angle and scale props in bitmap images and sprites.
- Fixed re-render issue with properties.
- Fixed issue with collision handlers are registered before collision bodies.
- Added
delta
parameter touseKeyAxis
callback. - Added support for static circular physics bodies.
- Added
clamp
utility function. - Added
useSwipe
hook. - Added debug information to the device component.
- Removed legacy mouse and touch handlers.
- Fixed camera smoothing to be frame rate agnostic.
- Added support for pointer events.
- Added support for speech synthesis API.
- Added particle generator
- Implemented automatic property invalidation mechanism, using proxies.
- Added
setVelocity
function to physics context. - Use CSS typed object model for setting styles.
- Added different device modes.
- Device styles for mobile simulation.
- Initial prototype.