Add ImageSheet system
MicroLua brings Lua on the Nintendo DS for easy programming
Brought to you by:
reylak
We plan to change the way Sprites are created (more than [#7]): instead of giving them an image, we give a table of frames called a SpriteSheet.
Quoting Lolman (Jacen.Guardian):
I think what follows:
- Sprite should work with a SpriteSheet (or Anim, choose the name you want) object;
- SpriteSheet would be in fact a table of Image which would have a
2 ctor;- the first ctor takes one filename, the width and the height of one frame as its arguments;
- the other ctor takes a list of files which are individually the frames (1 file = 1 frame);
- then we can access the resulting table of Image using SpriteSheet[n];
- finally, the sprite ctor becomes "Sprite.new(tableOfImage, delay)", so there are many possibilities: "Sprite.new(SpriteSheet1, 50)", "Sprite.new({ SprSheet2[1], SprSheet1[3], SpriteAnim3[1] }, 100)", etc.;
- finally the Images are outside the Sprite, editable, and we can even draw them directly (this isn't a replacement of drawFrame but could be): "screen.blit(SCREEN_UP, 20, 20, SprSheet1[1])". We can also use the same frame of a spritesheet for many sprites.
Instead of making two constructors, we only make one that is able to handle both calls (by checking the types of its arguments).
Anonymous
Modification: this system should be generic and could be used for Maps too.
We would have a function to load and split the image file, then we can create a new Sprite or Map from it.