It has been about a month since the last release of Elysion. Version 1.1 is primarily a bug fix and performance release, it still supports FreePascal 2.4.x and Turbo Delphi (possibly Delphi 7 as well).
The most important features are sprite sheet classes (well, you could animate sprite sheets before this change, but this required using a lot of code), which have been designed after Flashpunk's SpriteMap classes, let me give you guys an example:
Other changes include some slight performance improvements, improvements to per pixel collision on 64-bit systems, improvements to the texture loader and removed the X11 dependency on Mac OS X.Code:uses ... ElysionSpriteSheet, ... //Declare MySpriteSheet as TelSpriteSheet where you need to use it // In the constructor of the scene add: MySpriteSheet := TelSpriteSheet.Create; MySpriteSheet.LoadFromFile('myspritesheet.png'); MySpriteSheet.FrameSize := makeSize(128, 128); MySpriteSheet.Frame := 0; //< Sets the frame to zero (This needs to be called if the frame size has been changed) // The sprite sheet is now loaded and the size of a frame is set to 128x128 pixels. // Now you only need to play the sprite sheet, for example // in the Update procedure of a scene or in an event handler callback MySpriteSheet.Play(); // Plays the complete sprite sheet. The only parameter is an integer which // is the length of the animation in ms. It's set to 1000 (= 1 s) by default MySpriteSheet.PlayFrames([0, 3, 5, 7, 11, 17, 23]); // Plays only those selected frames. The second parameter // is the length of the animation (set to 1000 by default) MySpriteSheet.PlayFrames(4, 16); // Plays all frames from 4 to 16. The third optional parameter // is the animation's length once more, set to 1000 by default // Other ways to play a sprite sheet MySpriteSheet.PlayRow(2, 2000); // Plays the third row of the sprite sheet (Counting begins at 0) // with the length of 2s (Second parameter optional) MySpriteSheet.PlayColumn(3, 4000); // Plays the forth column of the sprite sheet (Counting begins at 0) // with the length of 4s (Second parameter optional)
As always, you can grab the release over on Github. If you are starting out with Elysion, please take a look at the wiki, especially the Getting Started part.
Direct download link: https://github.com/freezedev/elysion/zipball/V1.1
The full changelog is here:
* Marked intermediate GUI as deprecated (Please use TelNode descendants and add them to other nodes, layers or scenes)
+ Added support for sprite sheets (TelSpriteSheet)
* Fixed an issue where animators don't have their end value when the animation finishes
+ Added WaitUntilFinished property to TelAnimator and TelSpriteSheet (If set to true, the animation cannot be played again until it has been finished)
* Small performance optimizations (#59)
* Saves screenshots and log at working path (#5
* Fixed an issue where pixel collisions leads to a crash on 64-bit systems (#63)
* Fixed an issue where rounded rectangles are not being drawn (#64)
* Removed X11 linking dependency on Mac OS X
* Updated Vampyre dependency to latest Mercurial version (11-Dec-20)
* TelSize has now Single values instead of Integer
+ Added first draft of pluggable provider system (for graphics, audio, etc.)
* Improved texture loader: Pixel data (for pixel collision) will only be loaded if needed -> Faster loading times
- Removed ResourceMap unit (as it will be renamed and restructured)
- Removed SFont unit due to it being GPL licensed





Reply With Quote


Bookmarks