-
Notifications
You must be signed in to change notification settings - Fork 1
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
chore: Update dependency excalibur to v0.29.1 - autoclosed #80
Closed
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/excalibur-0.x
branch
4 times, most recently
from
January 31, 2022 11:57
c848119
to
b638484
Compare
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
5 times, most recently
from
February 6, 2022 00:05
d50212c
to
256d542
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.25.2
chore: Update dependency excalibur to v0.25.3
Feb 6, 2022
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
6 times, most recently
from
February 14, 2022 16:59
d9852a1
to
560072d
Compare
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
4 times, most recently
from
February 22, 2022 15:57
4302325
to
1c79350
Compare
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
6 times, most recently
from
March 7, 2022 21:03
daa8f66
to
84839d8
Compare
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
4 times, most recently
from
March 16, 2022 03:22
165177b
to
7698377
Compare
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
3 times, most recently
from
May 3, 2023 00:00
0d7743b
to
10eb213
Compare
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
May 24, 2023 06:52
10eb213
to
96e5c9b
Compare
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
August 11, 2023 04:29
96e5c9b
to
bc08992
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.27.0
chore: Update dependency excalibur to v0.28.1
Aug 11, 2023
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
December 2, 2023 03:02
bc08992
to
b30b647
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.28.1
chore: Update dependency excalibur to v0.28.2
Dec 2, 2023
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
December 12, 2023 16:47
b30b647
to
04fa704
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.28.2
chore: Update dependency excalibur to v0.28.3
Dec 12, 2023
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
December 22, 2023 04:24
04fa704
to
766b086
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.28.3
chore: Update dependency excalibur to v0.28.4
Dec 22, 2023
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
January 6, 2024 04:06
766b086
to
0283afd
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.28.4
chore: Update dependency excalibur to v0.28.5
Jan 6, 2024
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
January 13, 2024 15:37
0283afd
to
7fdfd9b
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.28.5
chore: Update dependency excalibur to v0.28.6
Jan 13, 2024
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
4 times, most recently
from
January 18, 2024 07:38
1bb8daf
to
c9cedb7
Compare
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
January 27, 2024 02:00
c9cedb7
to
9f7fcc5
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.28.6
chore: Update dependency excalibur to v0.28.7
Jan 27, 2024
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
February 20, 2024 16:22
9f7fcc5
to
7d78e46
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.28.7
chore: Update dependency excalibur to v0.29.0
Feb 20, 2024
renovate
bot
force-pushed
the
renovate/excalibur-0.x
branch
from
February 23, 2024 15:58
7d78e46
to
9ea371d
Compare
renovate
bot
changed the title
chore: Update dependency excalibur to v0.29.0
chore: Update dependency excalibur to v0.29.1
Feb 23, 2024
renovate
bot
changed the title
chore: Update dependency excalibur to v0.29.1
chore: Update dependency excalibur to v0.29.1 - autoclosed
Mar 10, 2024
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.25.1
->0.29.1
Release Notes
excaliburjs/Excalibur (excalibur)
v0.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
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 compConfiguration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR has been generated by Mend Renovate. View repository job log here.