Skip to content

Releases: excaliburjs/Excalibur

Excalibur v0.25.0 Release

04 Oct 01:14
Compare
Choose a tag to compare

image

See migration guide for v0.24.5 -> v0.25.0

We've had tons of community contributions since the last release. Heartfelt thanks to everyone in the discussions, issues and PRs!

Contributors:

Breaking Changes

  • Actor Drawing: ex.Actor.addDrawing, ex.Actor.setDrawing, onPostDraw(), and onPreDraw() are no longer on by default and will be removed in v0.26.0, they are available behind a flag ex.Flags.useLegacyDrawing()

    • For custom drawing use the ex.Canvas
  • ex.Actor.rx has been renamed to ex.Actor.angularVelocity

  • Rename ex.Edge to ex.EdgeCollider and ex.ConvexPolygon to ex.PolygonCollider to avoid confusion and maintian consistency

  • ex.Label constructor now only takes the option bag constructor and the font properties have been replaced with ex.Font

    const label = new ex.Label({
      text: 'My Text',
      x: 100,
      y: 100,
      font: new ex.Font({
        family: 'Consolas',
        size: 32
      })
    });
  • ex.Physics.debug properties for Debug drawing are now moved to engine.debug.physics, engine.debug.collider, and engine.debug.body.

    • Old debugDraw(ctx: CanvasRenderingContext2D) methods are removed.
  • Collision Pair's are now between Collider's and not bodies

  • PerlinNoise has been removed from the core repo will now be offered as a plugin

  • Legacy drawing implementations are moved behind ex.LegacyDrawing new Graphics implemenations of Sprite, SpriteSheet, Animation are now the default import.

    • To use any of the ex.LegacyDrawing.* implementations you must opt-in with the ex.Flags.useLegacyDrawing() note: new graphics do not work in this egacy mode
  • Renames CollisionResolutionStrategy.Box collision resolution strategy to Arcade

  • Renames CollisionResolutionStrategy.RigidBody collision resolution strategy to Realistic

  • Collider is now a first class type and encapsulates what Shape used to be. Collider is no longer a member of the Body

  • CollisionType and CollisionGroup are now a member of the Body component, the reasoning is they define how the simulated physics body will behave in simulation.

  • Timer's no longer automatically start when added to a Scene, this Timer.start() must be called. (#1865)

  • Timer.complete is now read-only to prevent odd bugs, use reset(), stop(), and start() to manipulate timers.

  • Actor.actions.repeat() and Actor.actions.repeatForever() now require a handler that specifies the actions to repeat. This is more clear and helps prevent bugs like #1891

    const actor = new ex.Actor();
    
    actor.actions
      // Move up in a zig-zag by repeating 5 times
      .repeat((ctx) => {
        ctx.moveBy(10, 0, 10);
        ctx.moveBy(0, 10, 10);
      }, 5)
      .callMethod(() => {
        console.log('Done repeating!');
      });
  • Removes Entity.components as a way to access, add, and remove components

  • ex.Camera.z has been renamed to property ex.Camera.zoom which is the zoom factor

  • ex.Camera.zoom(...) has been renamed to function ex.Camera.zoomOverTime()

  • TileMap no longer needs registered SpriteSheets, Sprite's can be added directly to Cell's with addGraphic

  • Directly changing debug drawing by engine.isDebug = value has been replaced by engine.showDebug(value) and engine.toggleDebug() (#1655)

  • UIActor Class instances need to be replaced to ScreenElement (This Class it's marked as Obsolete) (#1656)

  • Switch to browser based promise, the Excalibur implementation ex.Promise is marked deprecated (#994)

  • DisplayMode's have changed (#1733) & (#1928):

    • DisplayMode.FitContainer fits the screen to the available width/height in the canvas parent element, while maintaining aspect ratio and resolution
    • DisplayMode.FillContainer update the resolution and viewport dyanmically to fill the available space in the canvas parent element, DOES NOT preserve aspectRatio
    • DisplayMode.FitScreen fits the screen to the available browser window space, while maintaining aspect ratio and resolution
    • DisplayMode.FillScreen now does what DisplayMode.FullScreen used to do, the resolution and viewport dynamically adjust to fill the available space in the window, DOES NOT preserve aspectRatio (#1733)
    • DisplayMode.FullScreen is now removed, use Screen.goFullScreen().
  • SpriteSheet now is immutable after creation to reduce chance of bugs if you modified a public field. The following properties are read-only: columns, rows, spWidth, spHeight, image, sprites and spacing.

  • Engine.pointerScope now defaults to a more expected ex.Input.PointerScope.Canvas instead of ex.Input.PointerScope.Document which can cause frustrating bugs if building an HTML app with Excalibur

Added

  • New property center to Screen to encapsulate screen center coordinates calculation considering zoom and device pixel ratio
  • New ex.Shape.Capsule(width, height) helper for defining capsule colliders, these are useful for ramps or jagged floor colliders.
  • New collision group constructor argument added to Actornew Actor({collisionGroup: collisionGroup})
  • SpriteSheet.getSprite(x, y) can retrieve a sprite from the SpriteSheet by x and y coordinate. For example, getSprite(0, 0) returns the top left sprite in the sheet.
    • SpriteSheet's now have dimensionality with rows and columns optionally specified, if not there is always 1 row, and sprites.length columns
  • new Actor({radius: 10}) can now take a radius parameter to help create circular actors
  • The ExcaliburGraphicsContext now supports drawing debug text
  • Entity may also now optionally have a name, this is useful for finding entities by name or when displaying in debug mode.
  • New DebugSystem ECS system will show debug drawing output for things toggled on/off in the engine.debug section, this allows for a less cluttered debug experience.
    • Each debug section now has a configurable color.
  • Turn on WebGL support with ex.Flags.useWebGL()
  • Added new helpers to CollisionGroup to define groups that collide with specified groups CollisionGroup.collidesWith([groupA, groupB])
    • Combine groups with const groupAandB = CollisionGroup.combine([groupA, groupB])
    • Invert a group instance const everthingButGroupA = groupA.invert()
  • Improved Collision Simulation
    • New ECS based CollisionSystem and MotionSystem
    • Rigid body's can now sleep for improved performance
    • Multiple contacts now supported which improves stability
    • Iterative solver for improved stability
  • Added ColliderComponent to hold individual Collider implementations like Circle, Box, or CompositeCollider
    • Actor.collider.get() will get the current collider
    • Actor.collider.set(someCollider) allows you to set a specific collider
  • New CompositeCollider type to combine multiple colliders together into one for an entity
    • Composite colliders flatten into their individual colliders in the collision system
    • Composite collider keeps it's internal colliders in a DynamicTree for fast .collide checks
  • New TransformComponent to encapsulate Entity transform, that is to say position, rotation, and scale
  • New MotionComponent to encapsulate Entity transform values changing over time like velocity and acceleration
  • Added multi-line support to Text graphics (#1866)
  • Added TileMap arbitrary graphics support with .addGraphic() (#1862)
  • Added TileMap row and column accessors getRows() and getColumns() (#1859)
  • Added the ability to store arbitrary data in TileMap cells with Cell.data.set('key', 'value') and Cell.data.get('key') (#1861)
  • Actions moveTo(), moveBy(), easeTo(), scaleTo(), and scaleBy() now have vector overloads
  • Animation.fromSpriteSheet will now log a warning if an index into the SpriteSheet is invalid (#1856)
  • new ImageSource() will now log a warning if an image type isn't fully supported. (#1855)
  • Timer.start() to explicitly start timers, and Timer.stop() to stop timers and "rewind" them.
  • Timer.timeToNextAction will return the milliseconds until the next action callback
  • Timer.timeElapsedTowardNextAction will return the milliseconds counted towards the next action callback
  • BoundingBox now has a method for detecting zero dimensions in width or height `hasZeroDimen...
Read more

Excalibur v0.24.5 Release

07 Sep 23:57
Compare
Choose a tag to compare

image

Breaking Changes

  • [#1361] Makes use of proxies, Excalibur no longer supports IE11 💥 ([#1361]#1361)

Added

  • Adds new ECS Foundations API, which allows excalibur core behavior to be manipulated with ECS style code ([#1361]#1361)
    • Adds new ex.Entity & ex.EntityManager which represent anything that can do something in a Scene and are containers for Components
    • Adds new ex.Component type which allows encapsulation of state on entities
    • Adds new ex.Query & ex.QueryManager which allows queries over entities that match a component list
    • Adds new ex.System type which operates on matching Entities to do some behavior in Excalibur.
    • Adds new ex.Observable a small observable implementation for observing Entity component changes over time

Fixed

  • Fixed Animation flicker bug on the first frame when using animations with scale, anchors, or rotation. (#1636)

Changes

  • chore: Switch to main
  • feat: Implement ECS Foundations (#1316)
  • chore: Update storybook monorepo to v6 (major) (#1634)
  • chore: Update dependency karma-jasmine to v4 (#1633)
  • chore: Update Node.js to v12.18.3 (#1600)
  • chore: [#1487] Remove audio tag implementation (#1552)
  • chore: Remove flakey test, reopen #1547
  • chore: Update dependency puppeteer to v5 (#1614)
  • fix: [#1636] Animation flicker on first frame (#1637)
  • fix: Documentation link

Excalibur v0.24.4 Release

03 Sep 00:18
Compare
Choose a tag to compare

image

Breaking Changes

Added

  • Add new ex.Screen abstraction to manage viewport size and resolution independently and all other screen related logic. (#1617)
    • New support for the browser fullscreen API
  • Add color blind mode simulation and correction in debug object.
    (#390)
  • Add LimitCameraBoundsStrategy, which always keeps the camera locked to within the given bounds. (#1498)
  • Add mechanisms to manipulate the Loader screen. (#1417)
    • Logo position Loader.logoPosition
    • Play button position Loader.playButtonPosition
    • Loading bar position Loader.loadingBarPosition
    • Loading bar color Loader.loadingBarColor by default is white, but can be any excalibur ex.Color

Changed

  • Remove usage of mock.engine from the tests. Use real engine instead.
  • Upgrade Excalibur to TypeScript 3.9.2
  • Upgrade Excalibur to Node 12 LTS

Deprecated

Removed

Fixed

  • Fixed Loader play button markup and styles are now cleaned up after clicked (#1431)
  • Fixed Excalibur crashing when embedded within a cross-origin IFrame (#1151)
  • Fixed performance issue where uneccessary effect processing was occurring for opacity changes (#1549)
  • Fixed issue when loading images from a base64 strings that would crash the loader (#1543)
  • Fixed issue where actors that were not in scene still received pointer events (#1555)
  • Fixed Scene initialization order when using the lifecycle overrides (#1553)

Changes

  • chore: Update dependency @types/node to v14.6.2
  • chore: Update dependency @types/jasmine to v3.5.14
  • chore: Update dependency eslint to v7.8.1
  • chore: Update storybook monorepo to v5.3.21
  • chore: Update dependency tslint to v6.1.3
  • chore: Update dependency typedoc to v0.19.0
  • chore: Update dependency prettier to v2.1.1
  • chore: Update dependency ts-loader to v8.0.3
  • chore: Update dependency lint-staged to v10.2.13
  • chore: Update dependency karma to v5.2.0
  • chore: Update dependency grunt to v1.3.0
  • chore: Update dependency css-loader to v4.2.2
  • chore: Update dependency copy-webpack-plugin to v6.1.0
  • chore: Update dependency @fortawesome/fontawesome-free to v5.14.0
  • chore: Update dependency @babel/core to v7.11.5
  • chore: Update Versions + CSS Loader Regression (#1619)
  • chore: Update dependency @types/jasmine to v3.5.12
  • chore: Update dependency @types/node to v14.6.0
  • chore: Update dependency eslint to v7.7.0
  • fix: [#1547] Flakey tests (#1618)
  • chore: Update dependency css-loader to v4 (#1612)
  • chore: Update dependency ts-loader to v8 (#1615)
  • chore: Update jasmine monorepo
  • chore: Update dependency webpack to v4.44.1
  • chore: Update dependency karma-coverage to v2.0.3
  • chore: Update dependency karma to v5.1.1
  • chore: Update dependency grunt to v1.2.1
  • fix: [#1549] Remove unecessary sprite effect for opacity (#1550)
  • feat: [#1617] Screen Resolution Abstraction (#1598)
  • chore: Update dependency webpack-cli to v3.3.12
  • chore: Update dependency typedoc to v0.17.8
  • chore: Update dependency puppeteer to v3.3.0
  • chore: Update dependency lint-staged to v10.2.11
  • chore: Update dependency eslint to v7.3.1
  • chore: Update dependency karma to v5.1.0
  • chore: Update dependency copyfiles to v2.3.0
  • chore: Update dependency css-loader to v3.6.0
  • chore: Update dependency copy-webpack-plugin to v6.0.3
  • chore: Update dependency @types/node to v14.0.14
  • chore: Update dependency @types/react-color to v3.0.4
  • chore: Update dependency @fortawesome/fontawesome-free to v5.13.1
  • chore: Update dependency @types/jasmine to v3.5.11
  • chore: Update dependency @babel/core to v7.10.4
  • chore: Update Node.js to v12.18.2
  • chore: Update dependency copy-webpack-plugin to v6 (#1573)
  • fix: [#805] Replace mock.engine by real engine (#1514)
  • chore: Update dependency eslint-plugin-jsdoc to v22.2.0
  • fix: [#1555] Pointer events should only work on actors in scene (#1556)
  • chore: Update dependency eslint to v7 (#1574)
  • chore: Update dependency karma-coverage-istanbul-reporter to v3 (#1576)
  • docs: [#1538] Update our Code of Conduct (#1579)
  • chore: Update dependency serve to v11.3.2
  • chore: Update dependency @types/react-color to v3.0.2
  • chore: Update dependency @types/node to v14.0.9
  • chore: Update storybook monorepo to v5.3.19
  • chore: Update dependency typescript to v3.9.3
  • chore: Update typescript-eslint monorepo to v2.34.0
  • chore: Update dependency typedoc to v0.17.7
  • chore: Update dependency ts-loader to v7.0.5
  • chore: Update dependency puppeteer to v3.2.0
  • chore: Update dependency lint-staged to v10.2.7
  • chore: Update dependency karma-jasmine to v3.3.1
  • chore: Update dependency karma to v5.0.9
  • chore: Update dependency @types/node to v14.0.6
  • chore: Update dependency @babel/core to v7.10.2
  • chore: Update Node.js to v12.17.0
  • chore: Pin dependency lint-staged to 10.2.2
  • fix: [#1553] Scene onInitialize order (#1554)
  • fix: [#1417] [#1431] Loader positioning, allow customization, clean-up html (#1507)
  • fix: [#1543] Correct loading base64 string images (#1546)
  • chore: Switch to lint-staged (#1551)
  • chore: Update to node 12 (#1545)
  • chore: Update dependency @babel/core to v7.9.6
  • [chore] Update dependency webpack to v4.43.0 (#1524)
  • chore: fix https in package-lock.json
  • chore: Upgrade to TypeScript 3.9.2 (#1544)
  • feat: [#1498] Implement Camera Bounds Strategy (#1526)
  • [chore] update typedoc-default-themes
  • docs: Streamline language in the readme (#1537)
  • chore: [#1508] Update Renovate/release commit format (#1540)
  • [chore] Fix nuget publish

Excalibur v0.24.3 Release

10 May 15:40
Compare
Choose a tag to compare

image

Changes

  • [chore] Update release automation
  • [chore] Add actions intro story and split rotate story (#1534)
  • [chore]: Add more action stories (#1532)
  • [chore] Update dependency tslint to v6.1.2
  • [chore] Update dependency typedoc to v0.17.6
  • [chore] Update dependency ts-loader to v7.0.2
  • [chore] Update dependency lint-staged to v10.2.2
  • [chore] Update dependency puppeteer to v3.0.2
  • [chore] Update dependency lint-staged to v10.2.1
  • [chore] Update dependency karma to v5.0.4
  • [#290] Add correction and simulation of colorblindness (#1515)

Excalibur v0.24.1 Release

24 Apr 02:54
Compare
Choose a tag to compare

image

Fixed

  • Fix collision type initialization regression

Excalibur v0.24.0 Release

24 Apr 01:11
32f5e5c
Compare
Choose a tag to compare

image

Breaking Changes

  • Remove obsolete .extend() semantics in Class.ts as as well as related test cases.

Added

  • Added new option for constructing bounding boxes. You can now construct with an options
    object rather than only individual coordinate parameters. (#1151)
  • Added new interface for specifying the type of the options object passed to the
    bounding box constructor.
  • Added the ex.vec(x, y) shorthand for creating vectors.
    (#1340)
  • Added new event processed to Sound that passes processed string | AudioBuffer data. (#1474)
  • Added new property duration to Sound and AudioInstance that exposes the track's duration in seconds when Web Audio API is used. (#1474)

Changed

  • Animation no longer mutate underlying sprites, instead they draw the sprite using the animations parameters. This allows more robust flipping at runtime. (#1258)
  • Changed obsolete decorator to only log the same message 5 times. (#1281)
  • Switched to core-js based polyfills instead of custom written ones (#1214)
  • Updated to TypeScript@3.6.4 and node 10 LTS build
  • Sound.stop() now always rewinds the track, even when the sound is paused. (#1474)

Deprecated

  • ex.Vector.magnitude() will be removed in v0.25.0, use ex.Vector.size(). (#1277)

Fixed

  • Fixed Excalibur crashing when displaying both a tilemap and a zero-size actor (#1418)
  • Fixed animation flipping behavior (#1172)
  • Fixed actors being drawn when their opacity is 0 (#875)
  • Fixed iframe event handling, excalibur will respond to keyboard events from the top window (#1294)
  • Fixed camera to be vector backed so ex.Camera.x = ? and ex.Camera.pos.setTo(...) both work as expected(#1299)
  • Fixed missing on/once/off signatures on ex.Pointer (#1345)
  • Fixed sounds not being stopped when Engine.stop() is called. (#1476)

Thanks to @JeTmAn1981, @gargrave, @SirKitboard, @Guzzler, @saahilk, @djcsdy, @chrispanag, @MaanasArora, @jlennox, @jweissman, @HParker, @jurca, and @DaVince for their contributions!

Excalibur v0.23.0

08 Jun 16:13
Compare
Choose a tag to compare

image

Thanks to @DavidLi119, @radist2s, @magnusandy, @djcsdy, and @ZuzuZain for their contributions!

Breaking Changes

  • ex.Actor.scale, ex.Actor.sx/sy, ex.Actor.actions.scaleTo/scaleBy will 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.Collider type 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.scale now 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() and isCollider() type guards
  • Added ex.CollisionShape.draw collision shapes can now be drawn, actor's will use these shapes if no other drawing is specified
  • Added a getClosestLineBetween method to CollisionShape's for returning the closest line between 2 shapes (#1071)

Changed

  • Change ex.Actor.within to use surface of object geometry instead of the center to make judgements (#1071)

  • Changed moveBy, rotateBy, and scaleBy to 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) => void implied 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.Collider is a new type that encapsulates all collision behavior. Use ex.Actor.body.collider to interact with collisions in Excalibur (#1119)

    • Add new ex.Collider type that is the housing for all collision related code
      • The source of truth for ex.CollisionType is now on collider, with a convenience getter on actor
      • The collision system now operates on ex.Collider's not ex.Actor's
    • ex.CollisionType has been moved to a separate file outside of Actor
      • CollisionType is switched to a string enum, style guide also updated
    • ex.CollisionPair now operates on a pair of ex.Colliders's instead of ex.Actors's
    • ex.CollisionContact now operates on a pair of ex.Collider's instead of ex.Actors's
    • ex.Body has been modified to house all the physical position/transform information
      • Integration has been moved from actor to Body as a physical concern
      • useBoxCollision has been renamed to useBoxCollider
      • useCircleCollision has been renamed to useCircleCollider
      • usePolygonCollision has been renamed to usePolygonCollider
      • useEdgeCollision has been renamed to useEdgeCollider
    • Renamed ex.CollisionArea to ex.CollisionShape
      • ex.CircleArea has been renamed to ex.Circle
      • ex.PolygonArea has been renamed to ex.ConvexPolygon
      • ex.EdgeArea has been renamed to ex.Edge
    • Renamed getWidth() & setWidth() to property width
      • Actor and BoundingBox are affected
    • Renamed getHeight() & setHeight() to property height
      • Actor and BoundingBox are affected
    • Renamed getCenter() to the property center
      • Actor, BoundingBox, and Cell are affected
    • Renamed getBounds() to the property bounds
      • Actor, Collider, and Shapes are affected
    • Renamed getRelativeBounds() to the property localBounds
      • Actor, Collider, and Shapes are affected
    • Renamed moi() to the property inertia standing for moment of inertia
    • Renamed restition to the property bounciness
    • Moved collisionType to Actor.body.collider.type
    • Moved Actor.integrate to Actor.body.integrate

Deprecated

  • Legacy groups ex.Group will be removed in v0.24.0, use collision groups as a replacement (#1091)

  • Legacy collision groups off Actor will be removed in v0.24.0, use Actor.body.collider.collisionGroup (#1091)

  • Removed NaiveCollisionBroadphase as 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.y will be removed in v0.24.0 use Actor.pos.x & Actor.pos.y
    • Actor.collisionArea will be removed in v0.24.0 use Actor.body.collider.shape
    • Actor.getLeft(), Actor.getRight(), Actor.getTop(), and Actor.getBottom are deprecated
      • Use Actor.body.collider.bounds.(left|right|top|bottom)
    • 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.collider or Actor.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() and ex.Engine.start(). (#1063)
  • Fixed wrong Camera and Loader scaling on HiDPI screens when option suppressHiDPIScaling is set. (#1120)
  • Fixed polyfill application by exporting a polyfill() function that can be called. (#1132)
  • Fixed Color.lighten() (#1084)

Excalibur v0.22.0

06 Apr 15:38
Compare
Choose a tag to compare

image

Thanks to @edualb and @agrgic16 for their contributions!

Breaking Changes

  • ex.BaseCamera replaced with Camera, #1087

Added

  • Added enableCanvasTransparency property that can enable/disable canvas transparency (#1096)

Changed

  • Upgraded Excalibur to TypeScript 3.3.3333 (#1052)
  • Added exceptions on SpriteSheetImpl constructor to check if the source texture dimensions are valid (#1108)

Excalibur v0.21.0

02 Feb 16:22
051b0ef
Compare
Choose a tag to compare

image

Thanks to @kevin192291 and @dylanavery720 for their contributions!

Added

  • Added ability to automatically convert .gif files to SpriteSheet, Animations, and Sprites #153 courtesy of @kevin192291
  • Add new viewport property to camera to return a world space bounding box of the current visible area #1078

Changed

  • Updated ex.Color and ex.Vector constants to be static getters that return new instances each time, eliminating a source of bugs in excalibur #1085
  • Remove optionality of engine in constructor of Scene and _engine private with an underscore prefix (#1067) courtesy of @dylanavery720

Deprecated

  • Rename ex.BaseCamera to Camera, ex.BaseCamera will be removed in v0.22.0 #1087

Fixed

  • Fixed issue of early offscreen culling related to zooming in and out #1078
  • Fixed issue where setting suppressPlayButton: true blocks load in certain browsers #1079

Excalibur v0.20.0

23 Dec 14:19
Compare
Choose a tag to compare

image

Thanks to @T00mm , @atanasbozhkov for their contributions!

Breaking Changes

  • ex.PauseAfterLoaderremoved, use Use ex.Loader instead

Added

  • Added strongly typed EvenTypes enum to Events.ts to avoid magic strings #1066

Changed

  • Added parameter on SpriteSheet constructor so you can define how many pixel spacing is between sprites #1058

Fixed

  • Fixed issue where there were missing files in the dist (Loader.css, Loader.logo.png) (#1057)