Excalibur 0.23.0
See the version list below for details.
dotnet add package Excalibur --version 0.23.0
NuGet\Install-Package Excalibur -Version 0.23.0
<PackageReference Include="Excalibur" Version="0.23.0" />
<PackageVersion Include="Excalibur" Version="0.23.0" />
<PackageReference Include="Excalibur" />
paket add Excalibur --version 0.23.0
#r "nuget: Excalibur, 0.23.0"
#:package Excalibur@0.23.0
#addin nuget:?package=Excalibur&version=0.23.0
#tool nuget:?package=Excalibur&version=0.23.0
Thanks to @DavidLi119, @radist2s, @magnusandy, @djcsdy, and @ZuzuZain for their contributions!
Breaking Changes
- ex.Actor.scale,- ex.Actor.sx/sy,- ex.Actor.actions.scaleTo/scaleBywill not work as expected with new collider implementation, set width and height directly. These features will be completely removed in v0.24.0.
Added
- Add new collision group implementation (#1091, #862)
- New ex.Collidertype which is the container for all collision related behavior and state. Actor is now extracted from collision.
- Added interface Clonable<T>to indicate if an object contains a clone method
- Added interface Eventable<T>to indicated if an object can emit and receive events
- ex.Vector.scalenow also works with vector input
- ex.BoundingBox.fromDimension(width: number, height: number)can generate a bounding box from a width and height
- ex.BoundingBox.translate(pos: Vector)will create a new bounding box shifted by- pos
- ex.BoundingBox.scale(scale: Vector)will create a new bounding box scaled by- scale
- Added isActor()andisCollider()type guards
- Added ex.CollisionShape.drawcollision shapes can now be drawn, actor's will use these shapes if no other drawing is specified
- Added a getClosestLineBetweenmethod toCollisionShape's for returning the closest line between 2 shapes (#1071)
Changed
- Change - ex.Actor.withinto use surface of object geometry instead of the center to make judgements (#1071)
- Changed - moveBy,- rotateBy, and- scaleByto operate relative to the current actor position at a speed, instead of moving to an absolute by a certain time.
- Changed event handlers in excalibur to expect non-null event objects, before - hander: (event?: GameEvent) => voidimplied that event could be null. This change addresses (#1147) making strict null/function checks compatible with new typescript.
- Changed collision system to remove actor coupling, in addition - ex.Collideris a new type that encapsulates all collision behavior. Use- ex.Actor.body.colliderto interact with collisions in Excalibur (#1119)- Add new ex.Collidertype that is the housing for all collision related code- The source of truth for ex.CollisionTypeis now on collider, with a convenience getter on actor
- The collision system now operates on ex.Collider's notex.Actor's
 
- The source of truth for 
- ex.CollisionTypehas been moved to a separate file outside of- Actor- CollisionType is switched to a string enum, style guide also updated
 
- ex.CollisionPairnow operates on a pair of- ex.Colliders's instead of- ex.Actors's
- ex.CollisionContactnow operates on a pair of- ex.Collider's instead of- ex.Actors's
- ex.Bodyhas been modified to house all the physical position/transform information- Integration has been moved from actor to Bodyas a physical concern
- useBoxCollisionhas been renamed to- useBoxCollider
- useCircleCollisionhas been renamed to- useCircleCollider
- usePolygonCollisionhas been renamed to- usePolygonCollider
- useEdgeCollisionhas been renamed to- useEdgeCollider
 
- Integration has been moved from actor to 
- Renamed ex.CollisionAreatoex.CollisionShape- ex.CircleAreahas been renamed to- ex.Circle
- ex.PolygonAreahas been renamed to- ex.ConvexPolygon
- ex.EdgeAreahas been renamed to- ex.Edge
 
- Renamed getWidth()&setWidth()to propertywidth- Actor and BoundingBox are affected
 
- Renamed getHeight()&setHeight()to propertyheight- Actor and BoundingBox are affected
 
- Renamed getCenter()to the propertycenter- Actor, BoundingBox, and Cell are affected
 
- Renamed getBounds()to the propertybounds- Actor, Collider, and Shapes are affected
 
- Renamed getRelativeBounds()to the propertylocalBounds- Actor, Collider, and Shapes are affected
 
- Renamed moi()to the propertyinertiastanding for moment of inertia
- Renamed restitionto the propertybounciness
- Moved collisionTypetoActor.body.collider.type
- Moved Actor.integratetoActor.body.integrate
 
- Add new 
Deprecated
- Legacy groups - ex.Groupwill be removed in v0.24.0, use collision groups as a replacement (#1091)
- Legacy collision groups off - Actorwill be removed in v0.24.0, use- Actor.body.collider.collisionGroup(#1091)
- Removed - NaiveCollisionBroadphaseas it was no longer used
- Renamed methods and properties will be available until - v0.24.0
- Deprecated collision attributes on actor, use - Actor.body.collider- Actor.x&- Actor.ywill be removed in- v0.24.0use- Actor.pos.x&- Actor.pos.y
- Actor.collisionAreawill be removed in- v0.24.0use- Actor.body.collider.shape
- Actor.getLeft(),- Actor.getRight(),- Actor.getTop(), and- Actor.getBottomare deprecated- Use Actor.body.collider.bounds.(left|right|top|bottom)
 
- Use 
- Actor.getGeometry()and- Actor.getRelativeGeometry()are removed, use- Collider
- Collision related properties on Actor moved to Collider, useActor.body.collider- Actor.torque
- Actor.mass
- Actor.moi
- Actor.friction
- Actor.restition
 
- Collision related methods on Actor moved to Collider, useActor.body.colliderorActor.body.collider.bounds- Actor.getSideFromIntersect(intersect)→- BoundingBox.sideFromIntersection
- Actor.collidesWithSide(actor)→- Actor.body.collider.bounds.intersectWithSide
- Actor.collides(actor)→- Actor.body.collider.bounds.intersect
 
 
Fixed
- Fixed issue where leaking window/document handlers was possible when calling ex.Engine.stop()andex.Engine.start(). (#1063)
- Fixed wrong CameraandLoaderscaling on HiDPI screens when optionsuppressHiDPIScalingis set. (#1120)
- Fixed polyfill application by exporting a polyfill()function that can be called. (#1132)
- Fixed Color.lighten()(#1084)
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | 
|---|---|---|
| 0.31.0 | 119 | 9/27/2025 | 
| 0.30.3 | 269 | 1/2/2025 | 
| 0.30.2 | 240 | 12/26/2024 | 
| 0.30.1 | 272 | 12/13/2024 | 
| 0.29.3 | 275 | 5/5/2024 | 
| 0.29.2 | 314 | 4/7/2024 | 
| 0.29.1 | 307 | 2/23/2024 | 
| 0.29.0 | 330 | 2/20/2024 | 
| 0.28.7 | 320 | 1/27/2024 | 
| 0.28.6 | 301 | 1/13/2024 | 
| 0.28.5 | 336 | 1/6/2024 | 
| 0.28.4 | 321 | 12/22/2023 | 
| 0.28.3 | 301 | 12/12/2023 | 
| 0.28.2 | 348 | 12/2/2023 | 
| 0.28.0 | 430 | 8/11/2023 | 
| 0.25.3 | 816 | 2/6/2022 | 
| 0.25.2 | 692 | 1/22/2022 | 
| 0.25.1 | 767 | 11/6/2021 | 
| 0.25.0 | 663 | 10/4/2021 | 
| 0.24.5 | 989 | 9/7/2020 | 
| 0.24.4 | 925 | 9/3/2020 | 
| 0.24.3 | 936 | 5/10/2020 | 
| 0.24.1 | 798 | 4/24/2020 | 
| 0.24.0 | 863 | 4/24/2020 | 
| 0.23.0 | 1,034 | 6/8/2019 | 
| 0.22.0 | 1,001 | 4/6/2019 | 
| 0.21.0 | 1,174 | 2/2/2019 | 
| 0.20.0 | 1,165 | 12/23/2018 | 
| 0.19.1 | 1,171 | 10/23/2018 | 
| 0.19.0 | 1,253 | 10/13/2018 | 
| 0.18.0 | 1,484 | 8/4/2018 | 
| 0.17.0 | 1,713 | 6/16/2018 | 
| 0.16.0 | 1,785 | 4/6/2018 | 
| 0.15.0 | 1,391 | 2/17/2018 | 
| 0.14.0 | 1,744 | 12/2/2017 | 
| 0.13.0 | 1,688 | 10/7/2017 | 
| 0.12.0 | 1,786 | 8/12/2017 | 
| 0.11.0 | 1,862 | 6/10/2017 | 
| 0.10.0 | 1,827 | 4/8/2017 | 
| 0.9.0 | 1,848 | 2/10/2017 | 
| 0.8.0 | 1,578 | 12/4/2016 | 
| 0.7.1 | 2,166 | 10/4/2016 | 
| 0.7.0 | 2,174 | 8/30/2016 | 
| 0.6.0 | 2,436 | 1/20/2016 | 
| 0.5.1 | 2,051 | 6/26/2015 | 
| 0.5.0 | 1,999 | 6/4/2015 | 
| 0.2.2 | 2,391 | 4/16/2014 | 
| 0.2.1 | 2,235 | 4/16/2014 | 
| 0.2.0 | 2,250 | 4/10/2014 | 
| 0.1.1-alpha | 1,869 | 12/19/2013 | 
| 0.1.0-alpha | 1,968 | 12/12/2013 |