Update dependency excalibur to v0.27.0 #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.24.3
->0.27.0
Release Notes
excaliburjs/Excalibur
v0.27.0
Compare Source
Breaking Changes
ex.Engine.snapToPixel
now defaults tofalse
, it was unexpected to have pixel snapping on by default it has now been switched.ex.Physics.useRealisticPhysics()
physics solver has been updated to fix a bug in bounciness to be more physically accurate, this does change how physics behaves. Settingex.Body.bounciness = 0
will simulate the old behavior.ex.TransformComponent.posChanged$
has been removed, it incurs a steep performance costex.EventDispatcher
meta events 'subscribe' and 'unsubscribe' were unused and undocumented and have been removedex.TileMap
tlies are now drawn from the lower left by default to match withex.IsometricMap
and Tiled, but can be configured withrenderFromTopOfGraphic
to restore the previous behavior.onActivate
andonDeactivate
methods have been changed to receive a single parameter, an object containing thepreviousScene
,nextScene
, and optionaldata
passed in fromgoToScene()
Deprecated
Added
Added new configurable
ex.TileMap
option for rendering from the bottom or the top of the graphic, this matches withex.IsometricMap
and how Tiled rendersrenderFromTopOfGraphic
, by defaultfalse
and renders from the bottom.Added new
ex.Future
type which is a convenient way of wrapping a native browser promise and resolving/rejecting laterAdded new
ex.Semaphore
type to limit the number of concurrent cans in a section of code, this is used internally to work around a chrome browser limitation, but can be useful for throttling network calls or even async game events.Added new
ex.WatchVector
type that can observe changes to x/y more efficiently thanex.watch()
Added performance improvements
ex.Vector.distance
improvementex.BoundingBox.transform
improvementAdded ability to clone
ex.Vector.clone(destVector)
into a destination vectorAdded new
ex.Transform
type that is a light weight container for transformation data. This logic has been extracted from theex.TransformComponent
, this makes it easy to passex.Transform
s around. Additionally the extractedex.Transform
logic has been refactored for performance.Added new
ex.AffineMatrix
that is meant for 2D affine transformations, it uses less memory and performs less calculations than theex.Matrix
which uses a 4x4 Float32 matrix.Added new fixed update step to Excalibur! This allows developers to configure a fixed FPS for the update loop. One advantage of setting a fix update is that you will have a more consistent and predictable physics simulation. Excalibur graphics will be interpolated automatically to avoid any jitter in the fixed update.
Allowed setting playback
ex.Sound.duration
which will limit the amount of time that a clip plays from the current playback position.Added a new lightweight
ex.StateMachine
type for building finite state machinesAdded
ex.Sound.seek(positionInSeconds)
which will allow you to see to a place in the sound, this will implicitly pause the soundAdded
ex.Sound.getTotalPlaybackDuration()
which will return the total time in the sound in seconds.Allow tinting of
ex.Sprite
's by setting a newtint
property, renderers must support the tint property in order to function.Added
ex.Sound.getPlaybackPosition()
which returns the current playback position in seconds of the currently playing sound.Added
ex.Sound.playbackRate
which allows developers to get/set the current rate of playback. 1.0 is the default playback rate, 2.0 is twice the speed, and 0.5 is half speed.Added missing
ex.EaseBy
action type, usesex.EasingFunctions
to move relative from the current entity position.Added 2 new
Action
types to enable running parallel actions.ex.ActionSequence
which allows developers to specify a sequence of actions to run in order, andex.ParallelActions
to run multiple actions at the same time.Add target element id to
ex.Screen.goFullScreen('some-element-id')
to influence the fullscreen element in the fullscreen browser API.Added optional
data
parameter togoToScene
, which gets passed to the target scene'sonActivate
method.Fixed
Fixed issue with
ex.Canvas
andex.Raster
graphics that forced their dimensions to the next highest power of two.Fixed issue with
ex.Engine.snapToPixel
where positions very close to pixel boundary created jarring 1 pixel oscillations.Fixed bug where a deferred
goToScene
would preserve the incorrect scene soengine.add(someActor)
would place actors in the wrong scene after transitioning to another.Fixed usability issue and log warning if the
ex.ImageSource
is not loaded and a draw was attempted.Fixed bug in
ex.Physics.useRealisticPhysics()
solver whereex.Body.bounciness
was not being respected in the simulationFixed bug in
ex.Physics.useRealisticPhysics()
solver whereex.Body.limitDegreeOfFreedom
was not working all the time.Fixed bug in
Clock.schedule
where callbacks would not fire at the correct time, this was because it was scheduling using browser time and not the clock's internal time.Fixed issue in Chromium browsers where Excalibur crashes if more than 256
Image.decode()
calls are happening in the same frame.Fixed issue where
ex.EdgeCollider
were not working properly inex.CompositeCollider
forex.TileMap
'sFixed issue where
ex.BoundingBox
overlap return false due to floating point rounding error causing multiple collisions to be evaluated sometimesFixed issue with
ex.EventDispatcher
where removing a handler that didn't already exist would remove another handler by mistakeFixed issue with
ex.EventDispatcher
where concurrent modifications of the handler list where handlers would or would not fire correctly and throwTweak to the
ex.ArcadeSolver
to produce more stable results by adjusting by an infinitesimal epsilonFixed issue with
ex.ArcadeSolver
based collisions where colliders were catching on seams when sliding along a floor of multiple colliders. This was by sorting contacts by distance between bodies.Fixed issue with
ex.ArcadeSolver
where corner contacts would zero out velocity even if the bodies were already moving away from the contact "divergent contacts".Fixed issue where
ex.Sound
wasn't being paused when the browser window lost focusUpdates
Changed
ex.Engine.configurePerformanceCanvas2DFallback
no longer requiresthreshold
orshowPlayerMessage
ex.Engine.snapToPixel
now defaults tofalse
ex.Matrix
was used have been switched toex.AffineMatrix
ex.TransformComponent
was used have been switched toex.Transform
v0.26.0
Compare Source
Breaking Changes
ex.Line
has be replaced with a new Graphics type, the old geometric behavior is now under the typeex.LineSegment
ex.SortedList
old sorted list is removedex.Collection
old collection type is removedex.Util
import site, exported code promotedex.*
ex.DisplayMode.Position
is removed, use CSS to position the canvasex.Trait
interface, traits are not longer supportedex.Promises
old promise implementation is removed in favor of browser promisesex.Actor
.getZIndex()
and.setZIndex()
removed use.z
ex.Scene
.screenElements
removed in favor of.entities
.addScreenElement(...)
removed use.add(...)
.addTileMap(...)
removed use.add(...)
.removeTileMap(...)
removed use.remove(...)
ex.Timer
.unpause()
removed use.resume()
ex.Camera
.rx
removed use.angularVelocity
ex.BodyComponent
.sx
removed use.scaleFactor
.rx
removed use.angularVelocity
ex.ActionsComponent
.asPromise()
removed use.toPromise()
ex.ActionContext
.asPromise()
removed use.toPromise()
ex.Color
ex.Flags.useLegacyDrawing()
orex.Flags.useCanvasGraphicsContext()
.Drawable
are removed, use the newGraphics
APIex.Actor.setDrawing(...)
,ex.Actor.addDrawing(...)
are removed, use theex.Actor.graphics.add(...)
,ex.Actor.graphics.show(...)
andex.Actor.graphics.use(...)
ex.Actor.onPreDraw(...)
andex.Actor.onPostDraw(...)
are removed, useex.Actor.graphics.onPreDraw(...)
andex.Actor.graphics.onPostDraw(...)
predraw
andpostdraw
are removedex.Scene.onPreDraw()
andex.Scene.onPostDraw()
are now called with theExcaliburGraphicsContext
instead of anCanvasRenderingContext2D
ex.TileMap
has several breaking changes around naming, but brings it consistent with Tiled terminology and the newex.IsometricMap
. Additionally the new names are easier to follow.ex.Cell
has been renamed toex.Tile
ex.Tile
now usesaddGraphic(...)
,removeGraphic(...)
,clearGraphics()
andgetGraphics()
instead of having an accessibleex.Tile.graphics
array.ex.TileMap.data
has been renamed toex.TileMap.tiles
ex.TileMap.getCell(..)
has been renamed toex.TileMap.getTile(...)
ex.TileMap.getCellByIndex(...)
has been renamed toex.TileMap.getTileByIndex(...)
ex.TileMap.getCellByPoint(...)
has been renamed toex.TileMap.getTileByPoint(...)
Deprecated
Added
Added new parameter to
ex.Raster({quality: 4})
to specify the internal scaling for the bitmap, this is useful for improving the rendering quality of small rasters due to sampling error.Added new
ex.Line
graphics object for drawing lines!Added new performance fallback configuration to
ex.Engine
for developers to help players experiencing poor performance in non-standard browser configurationsAdded new
ex.ParallaxComponent
for creating parallax effects on the graphics, entities with this component are drawn differently and a collider will not be where you expect. It is not recommended you use colliders with parallax entities.Added feature to build
SpriteSheet
s from a list of different sized source views usingex.SpriteSheet.fromImageSourceWithSourceViews(...)
Added draw call sorting
new ex.Engine({useDrawSorting: true})
to efficiently draw render plugins in batches to avoid expensive renderer switching as much as possible. By default this is turned on, but can be opted out of.Added the ability to clone into a target
Matrix
this is useful to save allocations and in turn garbage collection pauses.ex.Engine
now support setting the pixel ratio in the constructornew ex.Engine({pixelRatio: 2})
, this is useful for smoothex.Text
rendering whenantialiasing: false
and rendering pixel art type graphicsex.TileMap
now supports per Tile custom colliders!New
ex.IsometricMap
for drawing isometric grids! (They also support custom colliders via the same mechanism asex.TileMap
)ex.IsometricTile
now come with aex.IsometricEntityComponent
which can be applied to any entity that needs to be correctly sorted to preserve the isometric illusionex.IsometricEntitySystem
generates a new z-index based on theelevation
and y position of an entity withex.IsometricEntityComponent
Added arbitrary non-convex polygon support (only non-self intersecting) with
ex.PolygonCollider(...).triangulate()
which builds a newex.CompositeCollider
composed of triangles.Added faster
ex.BoundingBox.transform(...)
implementation.Added faster
ex.BoundingBox.overlap(...)
implementation.Added
ex.Vector.min(...)
andex.Vector.max(...)
to find the min/max of each vector component between 2 vectors.Added
ex.TransformComponent.zIndexChange$
observable to watch when z index changes.Added new display mode
ex.DisplayMode.FitContainerAndFill
.Added new display mode
ex.DisplayMode.FitScreenAndFill
.Added new display mode
ex.DisplayMode.FitContainerAndZoom
.Added new display mode
ex.DisplayMode.FitScreenAndZoom
.Fixed
wasPressed
was not working in theonPostUpdate
lifecycleex.Input.Keys
enum, includingEnter
Updates
ex.Loader
screen keeping frame rates higher by only updating the backingex.Canvas
when there are changesex.BoundingBox.overlaps
checkex.PolygonCollider
calculations for localBounds, bounds, and transformed point geometrymeasureText()
callsChanged
ex.Matrix.multv()
andex.Matrix.multm()
toex.Matrix.multiply()
which matches our naming conventionsv0.25.3
Compare Source
v0.25.2
Compare Source
Breaking Changes
ex.Util.extend()
is removed, modern js spread operator{...someobject, ...someotherobject}
handles this better.engine.graphicsContext.addPostProcessor()
ex.PostProcessor
, all post processors must now now implement this interfaceDeprecated
Engine.createMainLoop
is now marked deprecated and will be removed in v0.26.0, it is replaced by theClock
apiex.Engine
,ex.Scene
, andex.Actor
deprecatedAdded
Added ability to build custom renderer plugins that are accessible to the
ex.ExcaliburGraphicsContext.draw<TCustomRenderer>(...)
after registering themex.ExcaliburGraphicsContext.register(new LineRenderer())
Added ability to draw circles and rectangles with outlines!
ex.ExcaliburGraphicsContext.drawCircle(...)
andex.ExcaliburGraphicsContext.drawRectangle(...)
Added
ex.CoordPlane
can be set in thenew ex.Actor({coordPlane: CoordPlane.Screen})
constructorAdded convenience feature, setting the color, sets the color on default graphic if applicable
Added a
DebugGraphicsComponent
for doing direct debug draw in theDebugSystem
Added back TileMap debug draw
Added
ex.Scene.timers
to expose the list of timersAdded support for different webgl texture blending modes as
ex.ImageFiltering
:ex.ImageFiltering.Blended
- Blended is useful when you have high resolution artwork and would like it blended and smoothedex.ImageFiltering.Pixel
- Pixel is useful when you do not want smoothing aka antialiasing applied to your graphics.Excalibur will set a "default" blend mode based on the
ex.EngineOption
antialiasing property, but can be overridden per graphicantialiasing: true
, then the blend mode defaults toex.ImageFiltering.Blended
antialiasing: false
, then the blend mode defaults toex.ImageFiltering.Pixel
ex.Text/ex.Font
defaults to blended which improves the default look of text rendering dramatically!ex.Circle
andex.Polygon
also default to blended which improves the default look dramatically!ex.ImageSource
can now specify a blend mode before the Image is loaded, otherwiseAdded new
measureText
method to theex.SpriteFont
andex.Font
to return the bounds of any particular textAdded new
Clock
api to manage the core main loop. Clocks hide the implementation detail of how the mainloop runs, users just knows that it ticks somehow. Clocks additionally encapsulate any related browser timing, likeperformance.now()
StandardClock
encapsulates the existingrequestAnimationFrame
api logicTestClock
allows a user to manually step the mainloop, this can be useful for frame by frame debugging #1170Added a new feature to Engine options to set a maximum fps
new ex.Engine({...options, maxFps: 30})
. This can be useful when needing to deliver a consistent experience across devices.Pointers can now be configured to use the collider or the graphics bounds as the target for pointers with the
ex.PointerComponent
useColliderShape
- (default true) uses the collider component geometry for pointer eventsuseGraphicsBounds
- (default false) uses the graphics bounds for pointer eventsFixed
v0.25.1
Compare Source
Added
esm/excalibur.js
entrypoint (#2064)withEngine
utils support an aditional options parameter to override the Engine default options.ex.Animation
now supporttotalDuration
that will calculate automatically each frame duration based on how many frames have.ex.Animation
now supports.reverse()
to reverse the direction of play in an animation, use theex.Animation.direction
to inspect if the animation is playing in theex.AnimationDirection.Forward
direction or theex.AnimationDirection.Backward
direction.Changed
ex.PointerSystem
that dispatches events to Entities/Actorsex.PointerEventReceiver
which is responsible for collecting the native browser eventsstopPropagation()
and been renamed tocancel()
ex.ActionsSystem
andex.ActionsComponent
now wrap the existingex.ActionContext
hidePlayButton
on the Button Event to prevent that keep on the screen on some situations [#1431].Deprecated
asPromise()
renamed totoPromise()
Fixed
ex.TileMap.z
to a valuev0.25.0
Compare Source
Breaking Changes
Actor Drawing:
ex.Actor.addDrawing
,ex.Actor.setDrawing
,onPostDraw()
, andonPreDraw()
are no longer on by default and will be removed in v0.26.0, they are available behind a flagex.Flags.useLegacyDrawing()
ex.Canvas
ex.Actor.rx
has been renamed toex.Actor.angularVelocity
Rename
ex.Edge
toex.EdgeCollider
andex.ConvexPolygon
toex.PolygonCollider
to avoid confusion and maintian consistencyex.Label
constructor now only takes the option bag constructor and the font properties have been replaced withex.Font
ex.Physics.debug
properties for Debug drawing are now moved toengine.debug.physics
,engine.debug.collider
, andengine.debug.body
.debugDraw(ctx: CanvasRenderingContext2D)
methods are removed.Collision
Pair
's are now between Collider's and not bodiesPerlinNoise
has been removed from the core repo will now be offered as a pluginLegacy drawing implementations are moved behind
ex.LegacyDrawing
new Graphics implemenations ofSprite
,SpriteSheet
,Animation
are now the default import.ex.LegacyDrawing.*
implementations you must opt-in with theex.Flags.useLegacyDrawing()
note: new graphics do not work in this egacy modeRenames
CollisionResolutionStrategy.Box
collision resolution strategy toArcade
Renames
CollisionResolutionStrategy.RigidBody
collision resolution strategy toRealistic
Collider
is now a first class type and encapsulates whatShape
used to be.Collider
is no longer a member of theBody
CollisionType
andCollisionGroup
are now a member of theBody
component, the reasoning is they define how the simulated physics body will behave in simulation.Timer
's no longer automatically start when added to aScene
, thisTimer.start()
must be called. (#1865)Timer.complete
is now read-only to prevent odd bugs, usereset()
,stop()
, andstart()
to manipulate timers.Actor.actions.repeat()
andActor.actions.repeatForever()
now require a handler that specifies the actions to repeat. This is more clear and helps prevent bugs like #1891Removes
Entity.components
as a way to access, add, and remove componentsex.Camera.z
has been renamed to propertyex.Camera.zoom
which is the zoom factorex.Camera.zoom(...)
has been renamed to functionex.Camera.zoomOverTime()
TileMap no longer needs registered SpriteSheets,
Sprite
's can be added directly toCell
's withaddGraphic
TileSprite
type is removed (Related to TileMap plugin updates Add TMX support excaliburjs/excalibur-tiled#4, Feature Array to Object excaliburjs/excalibur-tiled#23, No warning shown when using an external tsx tileset excaliburjs/excalibur-tiled#108)Directly changing debug drawing by
engine.isDebug = value
has been replaced byengine.showDebug(value)
andengine.toggleDebug()
(#1655)UIActor
Class instances need to be replaced toScreenElement
(This Class it's marked as Obsolete) (#1656)Switch to browser based promise, the Excalibur implementation
ex.Promise
is marked deprecated (#994)DisplayMode
's have changed (#1733) & (#1928):DisplayMode.FitContainer
fits the screen to the available width/height in the canvas parent element, while maintaining aspect ratio and resolutionDisplayMode.FillContainer
update the resolution and viewport dyanmically to fill the available space in the canvas parent element, DOES NOT preserveaspectRatio
DisplayMode.FitScreen
fits the screen to the available browser window space, while maintaining aspect ratio and resolutionDisplayMode.FillScreen
now does whatDisplayMode.FullScreen
used to do, the resolution and viewport dynamically adjust to fill the available space in the window, DOES NOT preserveaspectRatio
(#1733)DisplayMode.FullScreen
is now removed, useScreen.goFullScreen()
.SpriteSheet
now is immutable after creation to reduce chance of bugs if you modified a public field. The following properties are read-only:columns
,rows
,spWidth
,spHeight
,image
,sprites
andspacing
.Engine.pointerScope
now defaults to a more expectedex.Input.PointerScope.Canvas
instead ofex.Input.PointerScope.Document
which can cause frustrating bugs if building an HTML app with ExcaliburAdded
center
toScreen
to encapsulate screen center coordinates calculation considering zoom and device pixel ratioex.Shape.Capsule(width, height)
helper for defining capsule colliders, these are useful for ramps or jagged floor colliders.new Actor({collisionGroup: collisionGroup})
SpriteSheet.getSprite(x, y)
can retrieve a sprite from the SpriteSheet by x and y coordinate. For example,getSprite(0, 0)
returns the top left sprite in the sheet.SpriteSheet
's now have dimensionality withrows
andcolumns
optionally specified, if not there is always 1 row, andsprites.length
columnsnew Actor({radius: 10})
can now take a radius parameter to help create circular actorsExcaliburGraphicsContext
now supports drawing debug textEntity
may also now optionally have aname
, this is useful for finding entities by name or when displaying in debug mode.DebugSystem
ECS system will show debug drawing output for things toggled on/off in theengine.debug
section, this allows for a less cluttered debug experience.ex.Flags.useWebGL()
CollisionGroup
to define groups that collide with specified groupsCollisionGroup.collidesWith([groupA, groupB])
const groupAandB = CollisionGroup.combine([groupA, groupB])
const everthingButGroupA = groupA.invert()
CollisionSystem
andMotionSystem
ColliderComponent
to hold individualCollider
implementations likeCircle
,Box
, orCompositeCollider
Actor.collider.get()
will get the current colliderActor.collider.set(someCollider)
allows you to set a specific colliderCompositeCollider
type to combine multiple colliders together into one for an entity.collide
checksTransformComponent
to encapsulate Entity transform, that is to say position, rotation, and scaleMotionComponent
to encapsulate Entity transform values changing over time like velocity and accelerationText
graphics (#1866)TileMap
arbitrary graphics support with.addGraphic()
(#1862)TileMap
row and column accessorsgetRows()
andgetColumns()
(#1859)TileMap
cells withCell.data.set('key', 'value')
andCell.data.get('key')
(#1861)moveTo()
,moveBy()
,easeTo()
,scaleTo()
, andscaleBy()
now have vector overloadsAnimation.fromSpriteSheet
will now log a warning if an index into theSpriteSheet
is invalid (#1856)new ImageSource()
will now log a warning if an image type isn't fully supported. (#1855)Timer.start()
to explicitly start timers, andTimer.stop()
to stop timers and "rewind" them.Timer.timeToNextAction
will return the milliseconds until the next action callbackTimer.timeElapsedTowardNextAction
will return the milliseconds counted towards the next action callbackBoundingBox
now has a method for detecting zero dimensions in width or heighthasZeroDimensions()
BoundingBox
's can now bytransform
'd by aMatrix
new Entity(components: Component[])
constructor overload to create entities with components quickly.Entity.get(type: ComponentType)
to get strongly typed components if they exist on the entity.Entity.has(type: ComponentType)
overload to check if an entity has a component of that type.Entity.hasTag(tag: string)
,Entity.addTag(tag: string)
, andEntity.removeTag(tag: string, force: boolean)
.offscreen
is now added to entities that are offscreenEntity.componentAdded$
andEntity.componentRemoved$
for observing component changes on an entity.Entity.addChild(entity: Entity)
,Entity.removeChild(entity: Entity)
,Entity.removeAllChildren()
for managing child entitiesEntity.addTemplate(templateEntity: Entity)
for adding template entities or "prefab".Entity.parent
readonly accessor to the parent (if exists), andEntity.unparent()
to unparent an entity.Entity.getAncestors()
is a sorted list of parents starting with the topmost parent.Entity.children
readonly accessor to the list of children.DisplayMode.FitScreen
will now scale the game to fit the available space, preserving theaspectRatio
. (#1733)SpriteSheet.spacing
now accepts a structure{ top: number, left: number, margin: number }
for custom spacing dimensions (#1788)SpriteSheet.ctor
now has an overload that acceptsspacing
for consistency although the object constructor is recommended (#1788)SpriteSheet.getSpacingDimensions()
method to retrieve calculated spacing dimensions (#1788)KeyEvent.value?: string
which is the key value (or "typed" value) that the browser detected. For example, holding Shift and pressing 9 will have a value of(
which is the typed character.KeyEvent.originalEvent?: KeyboardEvent
which exposes the raw keyboard event handled from the browser.Changed
Gif
now supports new graphics componentAlgebra.ts
refactored into separate files inMath/
TileMap
now uses the built inCollider
component instead of custom collision code.ex.World
to encapsulate all things ECSex.CanvasDrawSystem
to handle all HTML Canvas 2D drawing via ECSex.Actor
to use newex.TransformComponent
andex.CanvasDrawComponent
Deprecated
Timer.unpause()
has be deprecated in favor ofTimer.resume()
(#1864)ex.SortedList
as deprecatedex.Promise
is marked deprecated (#994)ex.DisplayMode.Position
CSS can accomplish this task better than Excalibur (#1733)Fixed
ex.ColliderComponent
to not have a colliderex.CompositeCollider
ex.CompositeCollider
's individual colliders were erroneously generating pairsGraphicsOptions
width/height
could not be used to define aex.Sprite
with equivalentsourceView
anddestSize
(#1863)ex.Scene.onActivate/onDeactivate
were called with the wrong arguments (#1850)rotateTo
(#635)enterviewport
andexitviewport
eventex.Sprite
not rotating/scaling correctly around the anchor (Related to TileMap plugin updates Add TMX support excaliburjs/excalibur-tiled#4, Feature Array to Object excaliburjs/excalibur-tiled#23, No warning shown when using an external tsx tileset excaliburjs/excalibur-tiled#108)drawAroundAnchor
ex.Actor.easeTo
actions, they now use velocity to move Actors (#1638)Scene
constructor signature to make theEngine
argument optional (#1363)anchor
properly of single shapeActor
#1535Sound
resources would fail to load (#1848)v0.24.5
Compare Source
Breaking Changes
Added
ex.Entity
&ex.EntityManager
which represent anything that can do something in a Scene and are containers for Componentsex.Component
type which allows encapsulation of state on entitiesex.Query
&ex.QueryManager
which allows queries over entities that match a component listex.System
type which operates on matching Entities to do some behavior in Excalibur.ex.Observable
a small observable implementation for observing Entity component changes over timeFixed
v0.24.4
Compare Source
Added
ex.Screen
abstraction to manage viewport size and resolution independently and all other screen related logic. (#1617)(#390)
LimitCameraBoundsStrategy
, which always keeps the camera locked to within the given bounds. (#1498)Loader
screen. (#1417)Loader.logoPosition
Loader.playButtonPosition
Loader.loadingBarPosition
Loader.loadingBarColor
by default is white, but can be any excaliburex.Color
Changed
mock.engine
from the tests. Use real engine instead.Fixed
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.