Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A game engine written in Haskell that will provide 2d and 3d physics, a sound framework, and much more.
branch: master

Add FunctionLeaf datatype, which is a PropertyTree leaf that takes a …

…String and (PropertyTree->PropertyTree) in preparation for all gamestate changes to take place within a PropertyTree passed between functions, recursively, for the life of the program. This will enable the user to pass a labeled function into the game loop, thus eliminating the need for the user to tinker with engine files (unless adding datatypes to the tree in CurryDog.Data)

Add KeyLeaf for SDLKeys. This allows me to change the checkEvent in CurryDog.Input to take and return a PropertyTree instead of [SDLKey], thanks to the tree traversing function.

Fix the gameLoop in CurryDog so that it will actually compile now, (though more work is needed to make it actually useful)

Change type symbol on runGame to Maybe PropertyTree -> IO () from IO (). This facilitates the ability to check for a predefined gamestate user of the engine wants to load in. runGame state also now passes gamestate to gameLoop, instead of creating it inside itself.

Remove qualified from CurryDog imports in ExampleGameBase to make creating PropertyTrees easier. Example compiles, black window flashes by.

Add an example PropertyTree
TODO:
* Make keys easier accessible.
* Fix gameLoop so window can stay open.
* Create default gamestate if nothing is passed into runGame.
* [Rectangle] generator for Circle shape.
* Run userfunction passed in gamestate from runGame.

Thanks goes to merijn, ion, and doserj of channel #haskell @ irc.freenode.net for helping me with the FunctionLeaf implementation.
latest commit 5ce76d2db1
Adrien Howard authored

README.markdown

Something went wrong with that request. Please try again.