GamePack is an LGPL‘d multiplatform suite of components for game development under Lazarus.
You can get gamepack here
Full documentation is availablehere.
Additionally, the package contains a complete demo program demonstrating the use of the components.
It provides the following tools:
A complete double-buffered visual component, allowing for offscreen graphics manipulation with one-time-blits. Any TCanvas can be manually copied into it’s MemBuf property, but you can blit TSprites directly and it will understand the TSprite’s property’s, e.g. automatically blitting the current frame.
A visual component for sprite graphics. It functions semi-abstractly, never drawing to the canvas by itself. However it allows for easy multiframe sprites to be created into a single canvas, and through it’s properties allows easilly copying out the current frame. TDoubleBuffer.Blit will fully automate this process.
An array based list that can be used to set up constraints anywhere on the screen. It is implemented as a component so it can be linked to sprites and spritemovers at designtime. It can be used to create either arbitrary static constraints (e.g. around objects on the background) or mobile ones linked to a sprite (updated when the sprite is moved)
A powerful component that can be linked to a sprite, a constraintlist and a doublebuffer, it will handle sprite movement in 8-way directions, moving the sprite a configurable distance on each call to the move method. Movement is toggle-based. If desired, it will obey constraints and throw events when a collision occurs.