chore: Update dependency excalibur to v0.29.3 #146
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.28.1
->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
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, 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.