Excalibur 0.25.2

There is a newer version of this package available.
See the version list below for details.
dotnet add package Excalibur --version 0.25.2
NuGet\Install-Package Excalibur -Version 0.25.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Excalibur" Version="0.25.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Excalibur --version 0.25.2
#r "nuget: Excalibur, 0.25.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Excalibur as a Cake Addin
#addin nuget:?package=Excalibur&version=0.25.2

// Install Excalibur as a Cake Tool
#tool nuget:?package=Excalibur&version=0.25.2

image

What's Changed

See migration guide for v0.25.x → v0.25.2

Plugin Updates!

  • Excalibur Dev Tools for game debugging! image
  • Lots of quality of life improvements in the Tiled plugin
    • Tiled data is added to corresponding Entities via TiledObjectComponent and TiledLayerComponent
    • Tiled name's become excalibur Entity names
    • Layers and object use Tiled Z-indexing by default

Added Features

  • feat: [#577] [#1170] Implement new Clock API by @eonarheim in https://github.com/excaliburjs/Excalibur/pull/2122
    • 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()
      1. StandardClock encapsulates the existing requestAnimationFrame api logic
      2. TestClock allows a user to manually step the mainloop, this can be useful for frame by frame debugging #1170
      3. 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.
  • feat: Post Processing Improvements + Pre-multiplied alpha by @eonarheim in https://github.com/excaliburjs/Excalibur/pull/2142
    • New ex.ScreenShader helper for building custom shader based post processors, read docs for more info
  • feat: Support image filtering modes on ImageSource & Raster Graphics by @eonarheim in https://github.com/excaliburjs/Excalibur/pull/2168
  • feat: Fixes and updates to support @excaliburjs/dev-tools by @eonarheim in https://github.com/excaliburjs/Excalibur/pull/2169
  • feat+refactor: Renderer simplification and Render plugins by @eonarheim in https://github.com/excaliburjs/Excalibur/pull/2185
    • 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
    export interface PostProcessor {
      intialize(gl: WebGLRenderingContext): void;
      getShader(): Shader;
      getLayout(): VertexLayout;
    }
    
  • Excalibur ex.EventEmitter on longer overrides the this parameter in callbacks
    // change this type of code
    this.on('precollision', this.onPreCollision);
    
    // to this
    this.on('precollision', (evt) => this.onPreCollision(evt));
    

Deprecated

  • The static Engine.createMainLoop is now marked deprecated and will be removed in v0.26.0, it is replaced by the Clock api
  • Mark legacy draw routines in ex.Engine, ex.Scene, and ex.Actor deprecated

Bug Fixes

Changed/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: https://github.com/excaliburjs/Excalibur/compare/v0.25.1...v0.25.2

There are no supported framework assets in this package.

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.29.2 136 4/7/2024
0.29.1 138 2/23/2024
0.29.0 135 2/20/2024
0.28.7 161 1/27/2024
0.28.6 142 1/13/2024
0.28.5 172 1/6/2024
0.28.4 161 12/22/2023
0.28.3 147 12/12/2023
0.28.2 173 12/2/2023
0.28.0 261 8/11/2023
0.25.3 595 2/6/2022
0.25.2 468 1/22/2022
0.25.1 528 11/6/2021
0.25.0 446 10/4/2021
0.24.5 764 9/7/2020
0.24.4 674 9/3/2020
0.24.3 671 5/10/2020
0.24.1 574 4/24/2020
0.24.0 610 4/24/2020
0.23.0 760 6/8/2019
0.22.0 751 4/6/2019
0.21.0 927 2/2/2019
0.20.0 924 12/23/2018
0.19.1 916 10/23/2018
0.19.0 967 10/13/2018
0.18.0 1,027 8/4/2018
0.17.0 1,086 6/16/2018
0.16.0 1,154 4/6/2018
0.15.0 950 2/17/2018
0.14.0 1,106 12/2/2017
0.13.0 1,034 10/7/2017
0.12.0 1,118 8/12/2017
0.11.0 1,205 6/10/2017
0.10.0 1,173 4/8/2017
0.9.0 1,188 2/10/2017
0.8.0 1,118 12/4/2016
0.7.1 1,312 10/4/2016
0.7.0 1,344 8/30/2016
0.6.0 1,571 1/20/2016
0.5.1 1,361 6/26/2015
0.5.0 1,336 6/4/2015
0.2.2 1,712 4/16/2014
0.2.1 1,547 4/16/2014
0.2.0 1,572 4/10/2014
0.1.1-alpha 1,191 12/19/2013
0.1.0-alpha 1,283 12/12/2013