The initial idea
I basically have been using some of the standard sprite creation tools out there, and one of the things that annoyed me was their limited capacity for easing actual development, the most common use being the ability to create sprite sheets that could then be interpreted by code.
What annoyed me was the fact that I'd have to go from creating animations in a sprite editor, to exporting a sprite sheet png, to writing code to find it as a resource and then to putting things in, usually via a constructor, to let my program know the width/height of a specific animation, no of frames, duration etc.
I got to thinking that it would be great to be able to write all the animations inside the editor, and then merely click an export button and be rendering the sprite within 2 lines of code.
In essence, that's what I've achieved so far:
Essentially all the animation/sprite data is serialized from the editor and put into the res folder; then a xml file with all the resource links in is generated; then a resource manager class + several others are unpacked from a internal zip into a package in the src folder and when the program is run the resource manager reads the xml and then the serialized data and generates some sprite objects that can be gotten through their names in the editor.
It simplifies rendering of an animation to Sprite.Render(x,y,width,height), and changing animation to Sprite.setAnimation("anim name in editor"). I still need to put in some controls for pausing/setting frames etc. Render also acts like a game tick to handle animation timing, so might make them seperate for more control.
Done so far
- Exporting an animation as GIF
- Exporting a sprite sheet as png
- Exporting to a lwjgl project, sprite useable in 1-2 lines of code
- Basic sprite editor with saving/loading, color chooser, project management etc etc
Still to do
- Stop drawing to canvas when clicking on dropdowns that drop down over it XD (facepalm worthy bug)
- Zooming is a little annoying on large images as centered to top left
- interface changes
- Property menus
- Bug testing
- Write custom color chooser as I feel using JColorChooser is not the way to go
- evaluate export destinations
- Many other things I am sure ^^
Hopefully will have a release out soon, once I feel it is user friendly, and then will be able to release source code if I manage to tidy it up alot C: Just feeling out to see if it would be helpful to anyone else now that the general idea is implemented.