You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Added 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, like performance.now()
StandardClock encapsulates the existing requestAnimationFrame api logic
The base abstract clock implements the specifics of elapsed time
Added 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.
Added ability to build custom renderer plugins that are accessible to the ex.ExcaliburGraphicsContext.draw<TCustomRenderer>(...) after registering them ex.ExcaliburGraphicsContext.register(new LineRenderer())
Added ability to draw circles and rectangles with outlines! ex.ExcaliburGraphicsContext.drawCircle(...) and ex.ExcaliburGraphicsContext.drawRectangle(...)
Added ex.CoordPlane can be set in the new ex.Actor({coordPlane: CoordPlane.Screen}) constructor
Added convenience feature, setting the color, sets the color on default graphic if applicable
Added support for different webgl texture blending modes as ex.ImageFiltering :
ex.ImageSource can now specify a blend mode before the image is loaded
ex.ImageFiltering.Blended - Blended is useful when you have high resolution artwork and would like it blended and smoothed
ex.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 graphic
antialiasing: true, then the blend mode defaults to ex.ImageFiltering.Blended
antialiasing: false, then the blend mode defaults to ex.ImageFiltering.Pixel
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 events
useGraphicsBounds - (default false) uses the graphics bounds for pointer events
Added new measureText method to the ex.SpriteFont and ex.Font to return the bounds of any particular text
Breaking Changes
ex.Util.extend() is removed, modern js spread operator {...someobject, ...someotherobject} handles this better.
Excalibur post processing is now moved to the engine.graphicsContext.addPostProcessor()
Breaking change to ex.PostProcessor, all post processors must now now implement this interface
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
What's Changed
See migration guide for v0.25.x -> v0.25.2
Plugin Updates!
TiledObjectComponent
andTiledLayerComponent
Added Features
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 Add Engine frame step debugging feature #1170new ex.Engine({...options, maxFps: 30})
. This can be useful when needing to deliver a consistent experience across devices.ex.ScreenShader
helper for building custom shader based post processors, read docs for more info@excaliburjs/dev-tools
by @eonarheim in feat: Fixes and updates to support@excaliburjs/dev-tools
#2169ex.ExcaliburGraphicsContext.draw<TCustomRenderer>(...)
after registering themex.ExcaliburGraphicsContext.register(new LineRenderer())
ex.ExcaliburGraphicsContext.drawCircle(...)
andex.ExcaliburGraphicsContext.drawRectangle(...)
ex.CoordPlane
can be set in thenew ex.Actor({coordPlane: CoordPlane.Screen})
constructorex.ImageFiltering
:ex.ImageSource
can now specify a blend mode before the image is loadedex.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.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.PointerComponent
useColliderShape
- (default true) uses the collider component geometry for pointer eventsuseGraphicsBounds
- (default false) uses the graphics bounds for pointer eventsmeasureText
method to theex.SpriteFont
andex.Font
to return the bounds of any particular textBreaking 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 interfaceex.EventEmitter
on longer overrides thethis
parameter in callbacksDeprecated
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
deprecatedBug Fixes
onPostUpdate
#1815] TileMap tiling artifact by @eonarheim in fix: [#1815] TileMap tiling artifact #2146Changed/Refactor
Docs
Build Dependencies Updated
Contributors
Big thanks to all the people who have helped out this iteration!
@ivasilov
@luttje
@tsanyqudsi
@lampewebdev
@joshuadoan
@berkayyildiz
@simon-jaeger
@YJDoc2
@JumpLink
Full Changelog: v0.25.1...v0.25.2
Beta Was this translation helpful? Give feedback.
All reactions