-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(deps): update dependency excalibur to v0.29.3 (main) #108
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/main-excalibur-0.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
August 18, 2023 22:42
a8f9c74
to
573a581
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.28.1 (main)
fix(deps): update dependency excalibur to v0.28.2 (main)
Dec 2, 2023
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
December 2, 2023 04:12
573a581
to
851929c
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.28.2 (main)
fix(deps): update dependency excalibur to v0.28.3 (main)
Dec 12, 2023
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
December 12, 2023 16:50
851929c
to
097ca4b
Compare
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
December 22, 2023 06:46
097ca4b
to
9bd5ff2
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.28.3 (main)
fix(deps): update dependency excalibur to v0.28.4 (main)
Dec 22, 2023
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.28.4 (main)
fix(deps): update dependency excalibur to v0.28.5 (main)
Jan 6, 2024
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
January 6, 2024 04:13
9bd5ff2
to
90499a8
Compare
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
January 13, 2024 16:08
90499a8
to
6b9cdc7
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.28.5 (main)
fix(deps): update dependency excalibur to v0.28.6 (main)
Jan 13, 2024
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
January 27, 2024 02:20
6b9cdc7
to
c9aaa2f
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.28.6 (main)
fix(deps): update dependency excalibur to v0.28.7 (main)
Jan 27, 2024
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
February 20, 2024 16:11
c9aaa2f
to
6cff2d7
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.28.7 (main)
fix(deps): update dependency excalibur to v0.29.0 (main)
Feb 20, 2024
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
February 23, 2024 15:35
6cff2d7
to
2064e51
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.29.0 (main)
fix(deps): update dependency excalibur to v0.29.1 (main)
Feb 23, 2024
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
April 8, 2024 02:31
2064e51
to
cb84ad2
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.29.1 (main)
fix(deps): update dependency excalibur to v0.29.2 (main)
Apr 8, 2024
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
May 5, 2024 17:21
cb84ad2
to
2315a02
Compare
renovate
bot
changed the title
fix(deps): update dependency excalibur to v0.29.2 (main)
fix(deps): update dependency excalibur to v0.29.3 (main)
May 5, 2024
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
2 times, most recently
from
September 12, 2024 13:26
9850da9
to
1c72463
Compare
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
October 15, 2024 21:33
1c72463
to
4040e48
Compare
renovate
bot
force-pushed
the
renovate/main-excalibur-0.x
branch
from
November 1, 2024 04:45
4040e48
to
399c3e3
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
None yet
0 participants
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.26.0
->0.29.3
Release Notes
excaliburjs/Excalibur (excalibur)
v0.29.3
Compare Source
Breaking Changes
ex.Action
now requires a uniqueid
propertyglobalZ
property on the Actor or TransformComponent.Deprecated
Added
id
propertyglobalZ
property to Actor and TransformComponentFixed
ImageRenderer
ex.Loader.suppressPlayButton = true
did not work. Only using theex.Engine({suppressPlayButton: true})
workedUpdates
Changed
ex.Vector.toAngle()
now returns angles from[0 - 2 PI)
v0.29.2
Compare Source
Breaking Changes
Deprecated
Added
ex.ImageSource
with the newex.ImageWrapping.Clamp
(default),ex.ImageWrapping.Repeat
, andex.ImageWrapping.Mirror
.ex.TileMap
's and individualex.Tile
'sex.IsometricMap
's and individualex.IsometricTile
'suseAnchor
parameter toex.GraphicsGroup
to allow users to opt out of anchor based positioning, if set to false all graphics memberswill be positioned with the top left of the graphic at the actor's position.
ex.coroutine
overloads, you need not pass engine as long as you are in an Excalibur lifecycleex.coroutine
overloads, you need not pass engine as long as you are in an Excalibur lifecycleex.coroutine
timing parameter to schedule when they are updatedGraphicsComponent.bounds
which will report the world bounds of the graphic if applicable!ex.Vector.EQUALS_EPSILON
to configure theex.Vector.equals(v)
thresholdFixed
ex.TileMap
culling did not work properly when using fixed updates lower than refresh rateex.FontSource().toFont(options)
ex.Loader
start button position when using CSS transformsex.Loader
DisplayMode.FillContainer
DisplayMode.FitContainer
DisplayMode.FitContainerAndFill
DisplayMode.FitContainerAndZoom
ex.ParticleEmitter
z-index did not propagate to particlestransform.scale = v
andtransform.scale.setTo(x, y)
ex.coroutine
TypeScript type to include yieldingundefined
Color.toHex()
produced invalid strings if the channel values are negative or fractional, or if the alpha channel was different than 1Updates
Changed
ex.Loader
viewport/resolution internal configurationv0.29.1
: Excalibur v0.29.1 ReleaseCompare Source
Small release to fix transition bug!
What's Changed
Full Changelog: excaliburjs/Excalibur@v0.29.0...v0.29.1
v0.29.0
Compare Source
Breaking Changes
ex.Entity.tags
is now a javascriptSet
instead of anArray
this will affect methods that inspected tags as an array before.ex.Engine.goToScene
's second argument now takesGoToOptions
instead of just scene activation dataex.Physics
static is marked as deprecated, configuring these setting will move to theex.Engine({...})
constructorChanged the
Font
default base align toTop
this is more in line with user expectations. This does change the default rendering to the top left corner of the font instead of the bottom left.Remove confusing Graphics Layering from
ex.GraphicsComponent
, recommend we use theex.GraphicsGroup
to manage this behaviorex.GraphicsGroup
to be consistent and useoffset
instead ofpos
for graphics relative positioningECS implementation has been updated to remove the "stringly" typed nature of components & systems
class MySystem extends System<'ex.component'>
becomesclass MySystem extends System
class MyComponent extends Component<'ex.component'>
becomesclass MyComponent extends Component
ex.System.update(elapsedMs: number)
is only passed an elapsed timePrevent people from inadvertently overriding
update()
inex.Scene
andex.Actor
. This method can still be overridden with the//@​ts-ignore
pragmaex.SpriteSheet.getSprite(...)
will now throw on invalid sprite coordinates, this is likely always an error and a warning is inappropriate. This also has the side benefit that you will always get a definite type out of the method.Deprecated
Added
Added new
ex.Tilemap.getOnScreenTiles()
method to help users access onscreen tiles for logic or other concerns.Added
ex.FontSource
resource typeFont options can be defined either at the source or at the
toFont()
call. If defined in both,toFont(options)
willoverride the options in the
FontSource
.Added fullscreen after load feature! You can optionally provide a
fullscreenContainer
with a string id or an instance of theHTMLElement
Added new
ex.Debug
static for more convenient debug drawing where you might not have a graphics context accessible to you. This works by batching up all the debug draw requests and flushing them during the debug draw step.ex.Debug.drawRay(ray: Ray, options?: { distance?: number, color?: Color })
ex.Debug.drawBounds(boundingBox: BoundingBox, options?: { color?: Color })
ex.Debug.drawCircle(center: Vector, radius: number, options?: ...)
ex.Debug.drawPolygon(points: Vector[], options?: { color?: Color })
ex.Debug.drawText(text: string, pos: Vector)
ex.Debug.drawLine(start: Vector, end: Vector, options?: LineGraphicsOptions)
ex.Debug.drawLines(points: Vector[], options?: LineGraphicsOptions)
drawPoint(point: Vector, options?: PointGraphicsOptions)
Experimental
ex.coroutine
for running code that changes over time, useful for modeling complex animation code. Coroutines return a promise when they are complete. You can think of eachyield
as a frame.Added additional options in rayCast options
ignoreCollisionGroupAll: boolean
will ignore testing against anything with theCollisionGroup.All
which is the default for allfilter: (hit: RayCastHit) => boolean
will allow people to do arbitrary filtering on raycast results, this runs very last after all other collision group/collision mask decisions have been madeAdded additional data
side
andlastContact
toonCollisionEnd
andcollisionend
eventsAdded configuration option to
ex.PhysicsConfig
to configure composite collider onCollisionStart/End behaviorAdded configuration option to
ex.TileMap({ meshingLookBehind: Infinity })
which allows users to configure how far the TileMap looks behind for matching colliders (default is 10).Added Arcade Collision Solver bias to help mitigate seams in geometry that can cause problems for certain games.
ex.ContactSolveBias.None
No bias, current default behavior collisions are solved in the default distance orderex.ContactSolveBias.VerticalFirst
Vertical collisions are solved first (useful for platformers with up/down gravity)ex.ContactSolveBias.HorizontalFirst
Horizontal collisions are solved first (useful for games with left/right predominant forces)Added Graphics
opacity
on the Actor constructornew ex.Actor({opacity: .5})
Added Graphics pixel
offset
on the Actor constructornew ex.Actor({offset: ex.vec(-15, -15)})
Added new
new ex.Engine({uvPadding: .25})
option to allow users using texture atlases in their sprite sheets to configure this to avoid texture bleed. This can happen if you're sampling from images meant for pixel artAdded new antialias settings for pixel art! This allows for smooth subpixel rendering of pixel art without shimmer/fat-pixel artifacts.
new ex.Engine({pixelArt: true})
to opt in to all the right defaults to make this work!Added new antialias configuration options to deeply configure how Excalibur does any antialiasing, or you can provide
antialiasing: true
/antialiasing: false
to use the old defaults.Added new
lineHeight
property onSpriteFont
andFont
to manually adjust the line height when rendering text.Added missing dual of
ex.GraphicsComponent.add()
, you can nowex.GraphicsComponent.remove(name)
;Added additional options to
ex.Animation.fromSpriteSheetCoordinates()
you can now pass any validex.GraphicOptions
to influence the sprite per frameAdded additional options to
ex.SpriteSheet.getSprite(..., options)
. You can pass any validex.GraphicOptions
to modify a copy of the sprite from the spritesheet.New simplified way to query entities
ex.World.query([MyComponentA, MyComponentB])
New way to query for tags on entities
ex.World.queryTags(['A', 'B'])
Systems can be added as a constructor to a world, if they are the world will construct and pass a world instance to them
Added
RayCastHit
as part of every raycast not just the physics world query!Added the ability to log a message once to all log levels
debugOnce
infoOnce
warnOnce
errorOnce
fatalOnce
Added ability to load additional images into
ex.Material
s!Scene Transition & Loader API, this gives you the ability to have first class support for individual scene resource loading and scene transitions.
Add or remove scenes by constructor
Add loaders by constructor
New
ex.DefaultLoader
type that allows for easier custom loader creationNew
ex.Transition
type for building custom transitionsNew scene lifecycle to allow scene specific resource loading
onTransition(direction: "in" | "out") {...}
onPreLoad(loader: DefaultLoader) {...}
New async
goToScene()
API that allows overriding loaders/transitions between scenesScenes now can have
async onInitialize
andasync onActivate
!New scenes director API that allows upfront definition of scenes/transitions/loaders
Example:
Defining scenes upfront
Fixed
ex.TileMap
finding onscreen tiles is now BLAZINGLY FAST thanks to a suggestion from Kristen Maeyvn in the Discord.ex.TileMap.getTileByPoint()
did not take into account the rotation/scale of the tilemap.pixelRatio
on low res games to upscale'together'
, this means the whole composite collider is treated as 1 collider for onCollisionStart/onCollisionEnd. Now you can configure aseparate
which will fire onCollisionStart/onCollisionEnd for every separate collider included in the composite (useful if you are building levels or things with gaps that you need to disambiguate). You can also configure this on a per composite level to mix and matchCompositeCollider.compositeStrategy
Components
and.get(Builtin)
will return the correct subtype.v0.28.7
Compare Source
Breaking Changes
Deprecated
Added
Fixed
Updates
Changed
ex.PointerComponent.useGraphicsBounds = true
, users expect this to just work by default.ex.Material
API, if a material was created with a constructor it was lazily initialized. However this causes confusion because now the two ways of creating a material behave differently (the shader is not available immediately on the lazy version). Nowex.Material
requires the GL graphics context to make sure it always works the same.ex.Material
API, if a material was created with a constructor it was lazily initialized. However this causes confusion because now the two ways of creating a material behave differently (the shader is not available immediately on the lazy version). Nowex.Material
requires the GL graphics context to make sure it always works the same.v0.28.6
Compare Source
Breaking Changes
Deprecated
Added
ex.IsometricTile.data
this brings it into feature parity with normalex.Tile.data
Actor.graphics.onPreTransformDraw
with the corresponding event.on('pretransformdraw')
Actor.graphics.onPostTransformDraw
with the corresponding event.on('posttransformdraw')
ex.Animation
ex.Animation.currentFrameTimeLeft
will return the current time in milliseconds left in the currentex.Animation.goToFrame(frameNumber: number, duration?: number)
now accepts an optional duration for the target frameex.Animation.speed
can set the speed multiplier on an animation 1 = 1x speed, 2 = 2x speed.Fixed
ex.CompositeColliders
inside one another would cause a crash on collisionex.CompositeColliders
did not respect collider offsetex.Animation.reset()
did not properly reset all internal stateUpdates
Changed
v0.28.5
Compare Source
Breaking Changes
Deprecated
Added
Actor
, you can now override the following eventsex.IsometricMap
andex.Tilemap
visibility
andopacity
toex.IsometricMap
ex.IsometricMap
so multiple maps can sort correctlyactionstart
andactioncomplete
events to the Actor that are fired when an action starts and completesFixed
Camera
wasn't interpolated during fixed update, which is very noticeable when using camera locked strategiesIsometricMap
would debug draw collision geometry on non-solid tilesCompositeCollider
offset was undefined if not setpredraw
/postdraw
events per the advertised strongly typed eventsex.Tilemap.getTileByPoint()
GraphicsComponent
and allow.material
to be null to unset, current workaround is using.material = null as any
Updates
Changed
ex.IsometricMap
in theex.IsometricEntityComponent
, this allows for greater flexibility when using the component when a map may not be known or constructed.v0.28.4
Compare Source
Breaking Changes
Deprecated
Added
ex.Engine.debug.tilemap
property.Fixed
FontCache
font timeout to 400 ms and makes it configurable as a staticFontCache.FONT_TIMEOUT
. This is to help prevent a downward spiral on mobile devices that might take a long while to render a few starting frames causing the cache to repeatedly clear and never recover.Updates
Materials can now reference a new uniform for the screen texture and a screen uv attribute in their fragment shaders
u_screen_texture
- This is the texture of the screen right before the material draw calla_screenuv
- The vertex attribute corresponding to the screen uv relative to the current graphicv_screenuv
- The fragment varying corresponding to the screen uv relative to the current graphicMaterials can now reference the current time in their shaders
u_time_ms
- This is the ms since page navigation (performance.now() under the hood)Changed
v0.28.3
Compare Source
Breaking Changes
Deprecated
Added
collisionMask
that you want to search for.Fixed
Updates
Changed
v0.28.2
Compare Source
Breaking Changes
Deprecated
Added
ex.Engine.version
to report the current excalibur version build stringex.Screen.events
screen.events.on('resize', (evt) => )
Will emit when the screen is resizedscreen.events.on('fullscreen', (evt) => )
Will emit when the screen is changed into browser fullscreen modescreen.events.on('pixelratio', (evt) => )
Will emit when the screen's pixel ratio changes (moving from a hidpi screen to a non, or vice versa)Fixed
useCanvas2DFallback()
whereantialiasing
settings could be lostuseCanvas2DFallback()
where opacity was not respected in `saveentertrigger
should have beenenter
exittrigger
should have beenexit
ended
should have beenend
clear()
implementations modified the collection they were iterating overstop()
/start()
were called in rapid successionkeyboard.wasPressed(...)
did not fireex.Engine.input.pointers.primary.on('wheel', ...)
for wheel eventsUpdates
Changed
v0.28.1
Compare Source
v0.28.0
Compare Source
Breaking Changes
ex.Class
base class type, this was a common base class for many excalibur types that provided old on/off event functionality. This functionality has been preserved on the types that had it before usingex.EventEmitter
Deprecated
ex.Input.*
import site is deprecated, will be removed in v0.29.0. All the imports are still available onex.
nowisButtonPressed
has been renamed toisButtonHeld
ex.EventDispatcher
is marked deprecated, will eventually be removed in v0.29.0Added
Added new
ex.InputMapper
for mapping multiple input sources into actions! This can be useful for providing accessibility into your games and allowing users to map inputs to different game commands.Added strongly typed events with
ex.EventEmitter<TEventMap>
Added new convenience properties for flipping all the graphics on an Actor
ex.Actor.graphics.flipHorizontal
- Flips all the graphics horizontallyex.Actor.graphics.flipVertical
- Flips all the graphics verticallyAdded new
ex.Scene.transfer(actor)
method for transferring actors between scenes, useful if you want to only have an actor in 1 scene at a time.Added new
ex.Material
to add custom shaders perex.Actor
!ex.Actor.graphics.material = material
property or by setting the material property on theex.ExcaliburGraphicsContext.material = material
with.save()/.restore()
in vec2 v_uv
- UV coordinateuniform sampler2D u_graphic
- The current graphic displayed by the GraphicsComponentuniform vec2 u_resolution
- The current resolution of the screenuniform vec2 u_size;
- The current size of the graphicuniform vec4 u_color
- The current color of the materialuniform float u_opacity
- The current opacity of the graphics contextAdded updates to
ex.PostProcessor
ex.PostProcessor.onUpdate
hook for updating custom uniformsuniform float u_time_ms
- total playback time in millisecondsuniform float u_elapsed_ms
- the elapsed time from the last frame in millisecondsuniform vec2 u_resolution
- the resolution of the canvas (in pixels)Added new helper called
ex.Animation.fromSpriteSheetCoordinates
to help build animations more tersely from SpriteSheetsAdded new
FrameEvent
toex.Animation
which includes the frame index of the current frame!Added new typed
ex.EventEmitter
which will eventually replace the oldex.EventDispatcher
, this gives users a way of strongly typing the possible events that can be emitted using a type map. This is loosely typed you can still emit any event you want, you only get type completion suggestions for the type map.Added ability to perform arbitrary ray casts into
ex.Scene
, theex.PhysicsWorld
can be passed a variety of options to influence the types of ray cast hits thatare returned
Added word-wrap support for
ex.Text
using the optional parametermaxWidth
Added the emitted particle transform style as part of
ex.ParticleEmitter({particleTransform: ex.ParticleTransform.Global})
, [[ParticleTransform.Global]] is the default and emits particles as if they were world space objects, useful for most effects. If set to [[ParticleTransform.Local]] particles are children of the emitter and move relative to the emitter as they would in a parent/child actor relationship.Added
wasButtonReleased
andwasButtonPressed
methods to [[ex.Input.Gamepad]]Added
clone()
method toex.SpriteSheet
Fixed
ex.TileMap
collider consolidation where custom colliders would prevent normal solid tile colliders from being included.ex.EntityManager
, it did not properly clear internal state when removing entitiesex.TileMap
didn't properly offscreen cull due to the bounds not scaling properly.ex.Text.flipHorizontal
orex.Text.flipVertical
would not workex.ScreenElement
pointer events were not working by default.ex.Circle
was not accounted for in the bitmapnew ex.Engine({grabWindowFocus: false})
ex.Camera.rotation = ...
did not work to rotate the camera, also addressed offscreen culling issues that were revealed by this fix.ex.ScreenElement
anchor was not being accounted for properly when passed as a constructor parameter.ex.ScreenElement
would log a warning when created without a height or widthex.Sound
would get confused parsing and playing sound files with a querystring in their pathex.ColliderComponent
was not deeply cloning the storedex.Collider
causing them to be shared across clones.ex.GraphicsComponent
was not deeploy cloning thestored
ex.Graphics
causing them to be shared across clones.Actor.clone()
andEntity.clone()
crashed.ArcadeSolver
andRealisticSolver
.kill()
on a child entity would not remove it from the parentEntity
.removeAllChildren()
would not remove all the children from the parentEntity
ex.DisplayMode.FitScreenAndFill
when the screen was resized.preDraw
ex.Sound.loop
was not working, and switching tab visibility would cause odd behavior with loopingex.Sound
ex.ParticleEmitter
as a child did not position particles according to the parentex.Engine.screenshot()
did not match the smoothing set on the engine.ex.Actor.on('postupdate', (event) => {...})
.ex.Text
instances would cause Excalibur to crash webgl by implementing a global font cache.ex.Font
would become corrupted when re-used by multipleex.Text
instancesengine.on('visible')
event not firingEventDispatcher.emit
converting falsy values toex.GameEvent
. It will only convertundefined
ornull
values now.Updates
Changed
ex.EventEmitter
to broadcast events, Excalibur types that have events support will also have an.events
member.bustCache
property to allow setting this before loading, for exampleex.Sound.bustCache
.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
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 was generated by Mend Renovate. View the repository job log.