ReedKimble.PuppyBreath 0.4.0

.NET Framework 4.6.1
dotnet add package ReedKimble.PuppyBreath --version 0.4.0
NuGet\Install-Package ReedKimble.PuppyBreath -Version 0.4.0
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="ReedKimble.PuppyBreath" Version="0.4.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add ReedKimble.PuppyBreath --version 0.4.0
#r "nuget: ReedKimble.PuppyBreath, 0.4.0"
#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 ReedKimble.PuppyBreath as a Cake Addin
#addin nuget:?package=ReedKimble.PuppyBreath&version=0.4.0

// Install ReedKimble.PuppyBreath as a Cake Tool
#tool nuget:?package=ReedKimble.PuppyBreath&version=0.4.0

A simplistic and robust video game engine for .Net Windows Forms, based entirely on managed code and GDI+ graphics (authored in Visual Basic .Net).

Product Compatible and additional computed target framework versions.
.NET Framework net461 is compatible.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Additional computed target framework(s)
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.4.0 539 12/19/2020
0.3.0 948 1/11/2018
0.2.0 900 1/9/2018 891 1/8/2018
0.1.0 898 1/8/2018

Update to PuppyBreath alpha
     [Update Notes]
     See ChangeInfo.txt for details on the update.
     This version should be backward compatible with 0.3 projects, though some functionality
     has been marked Obsolete and should be refactored in any future updates to your project.
     [*** Previous Changes ***]
     Update to PuppyBreath alpha
     [Update Notes]
     This update corrects a couple of bugs and adds new features. Some existing functionality
     has changed and existing projects will likely require code modifications.
     [[Bug Fixes]]
     + "Other" collision object was being given the wrong collision info instance.
     + Number property in VariableBank now correctly sets number value instead of flag.
     + Cleared the collision list on a game object when it is reset.

     + Made signficant changes to scene handling.
     + Added GameSceneManager class and placed instance on GameState.
     + Removed Scene property from RenderCanvas, replacing with CurrentScene on
     + Moved ChangeScene() method into GameSceneManager.
     + Modified main game loop to support new scene change mechanics.
       Scene changes are now queued so that the current scene can process an update
       while being destroyed. On the update following the requested scene change,
       the new scene is initialized and displayed.
       !# You will need to refactor any code which previously accessed the Scene.
     + Split GameObject Initialization into two parts: Added LoadOnce/OnLoadOnce
       which is called by Initialize() one time over the objects lifetime (managed
       code lifetime). Initialize() is called any time the game object is reset and
       added to a scene. Code that should execute once and only once (eg loading
       animations) can be placed in the LoadOnce() override/delegate.
       !# You may wish to refactor initialization code.
     + Added GameState parameter to Sprite Render/OnPostRender signature.
       !# You will need to edit any sprite drawing code.
     + Added GameObject support to VariableBank.
     + Added Clear() method to VariableBank.
     + Added Clear() method to ObjectCache.
     + Moved AudioPlayers dictionary from GameScene onto GameState.
       !# You will need to refactor any audio-playing code.
     + Removed OnChangeFrom() OnChangeTo() delegates from GameScene.
       The functionality is replaced with OnInitialize()/OnLoadOnce()
       and OnReset().
       !#  You will need to refactor any scene-changing code.
     + Scenes are now reset automatically when they are no longer the current
       scene. All objects in the scene at the time have Destroy() called on them.
     + GameAudioPlayers now add themselves to GameAudio's interal players
       collection after they begin to play, rather than immediately upon creation.
     + Added IsLoop property to animations to support a one-time animation.
       !# You may need to edit your code to provide an IsLoop variable value.