In my last entry, I detailed the requirement for a level creator. This is the first time I actually have something decent to show for my work! I have been putting a lot of work into this, and there is still more to come!
To start with, this is the opening interface. You just have to input the data, and you are free to go. If however, you miss a piece of data, the defaults will be loaded. The defaults are the sizes and tileset that will be packaged with the jar.
At the moment, you can select from any of the tiles in the tileset, and you can then place that tile down. The tiles are placed in miniature if the gridsize is too small, or larger if the gridSize is too big. Essentially the grid size, is the size of the grid on the screen. The editable area is set by the level width and height, and that is set in the initial screen, or defaults to 100*100. If the level is too big to fit on the screen, you can scroll around the map, and it will only show you the area you can edit, and if the whole map is on the screen, you cant scroll. I am planning on adding the ability to zoom in and out, all that is really required to do that, is two keys to assign in and out to, and then to re-initialise the resized sprites each time you zoom.
In my last entry, I also said that I would use a live preview window, to see what was going on. I will still be doing this, however it is a work in progress. It should be relatively easy to add, and will require its own navigation, and it will be updated live, so you can see in real size the work you are doing.
Currently, this is what the creator looks like:
The parameters are: 10 Grid size, and 30*30 level. This is also using the default tileset!
Not too great looking.
However, I am going to get the basics working first, including some basic tools, such as fill, and addLake. Add Lake for instance would be specific to the tile set, and would allow the user to add a lake, which would also organise its border tiles. This particular tool may not be implemented as it is a bit too specific, but I may let the users build the tool themselves, and have it dynamically grab the right tile.
Anyway, the creator is coming along nicely, and my main focus now, is to save and load the map. This is easier said than done, because the image output will be random pixels, or so it will seem. But the pixels are generated on load, and arnt necessarily the same as the last run. So what I am planning is another form, which will load a map config file, which details which x,y coordinate on the tileset is which colour pixel. This way I can save and load maps to allow the user to create huge maps in multiple sittings. This should help me finish off beyond the light's overworld, which will allow me to release a build so people can let me know what they think!
Thanks for reading guys!