unterrainerinformatik / finitestatemachine Goto Github PK
View Code? Open in Web Editor NEWThis project is a finite state machine designed to be used in games.
License: The Unlicense
This project is a finite state machine designed to be used in games.
License: The Unlicense
Every time the FsmBuilderException class emits an exception, it should be documented in the doc for that method.
For chained state-changes because of multiple After's on a single update-call with large GameTime.
Like JJag noted...
http://community.monogame.net/t/state-machine-for-developers/9693/3?u=throbax
Let's see where that idea takes us...
The timers now don't reset when a state is entered or left.
You would expect that.
Add test.
The new Builder instances should be tested.
Port the tests from the README.md
Hi - just stumbled across your library and took a look out of pure curiosity.
I wondered what drove your decision to put update loop logic inside the state machine itself.. I.e I'd be tempted (if it was my design!) to just expose the current state as a property and then for game usage:
In Game.cs Update() method:
Switch(stateMachine.CurrentState)
{
case Jumping:
character.Height += gametime x 2;
Etc etc
}
No need to cast GameTime to TimeSpan etc.
This approach I believe would also lend itself better to dependency injection, as you can inject your configured state machine into various game components (like player) and then those components that have their own update() method can adjust their properties based on its current state similar to how I showed above, and trigger transitions to new states as required:
character.Update(time)
world.Update(time)
I'm just curious if you think having the update cycle logic run within the state machine configuration is better? I guess the Update logic is optional so you could still use this library as I am suggesting if you wanted to?
To speed up development I've excluded some of the old tests from the project.
Re-import them.
Repair them.
The transition should contain a list of clauses.
Add getters and setters properly.
The fluent interface (syntax) consists of interfaces right now.
Write concrete classes for that.
Please, consider using the .NET Standard instead of old Portable, thank you.
The two packages should be on two rows, not on the same one.
Nuget-package exists for both.
I have a state machine that loops around for more than 256,000 times and I eventually get an error The maximum number of stajavascript:void(0);ck frames supported by Visual Studio has been exceeded. Is there a workaround for this. I can see in the call stcack there are now breaks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.