I have a characterbody2d and I want to display the equipment being worn. So this equipment would need to be swapped around during game play.

I currently am using several sprites layered. How is best to handle this situation?

you are viewing a single comment's thread
view the rest of the comments
[–] 2 points 7 months ago (2 children)

@ICastFist @Fizz i see this is godot specific and I'm not 100% sure how godot handles it but the normal way to store your image data for sprites like this is to index them from a packed sprite sheet (there's tons of sprite packers out there, lots of animation tools have them built in), so instead of each obj being a 1000x1000png to use your example you may have a 4000x4000png with 10 objects packed in it.Most engines will handle this for you, you just have to pack the assets correctly for it.

  • source
  • parent
  • hideshow 2 child comments
  • [–] 2 points 7 months ago

    If you pack 10 objects in a 4000x4000 picture, but it has like 500px margins on every side, you're wasting memory for literally no reason, that's the point I wanted to bring attention to. Unused image space consumes memory. A spritesheet that only goes to 600px horizontally, but the image file has 1200px, it's wasting resources.

  • source
  • parent
  • [–] [S] 1 point 7 months ago

    Thank you for the reply.

    So this is similar to a tilemap in how you pick tiles based on their position on the map. I can draw sprites with just refernces to this sheet that sounds pretty good. I gotta look into this for when i spawn large groups of enemies with various gear.

    For now on my main characters I'm sticking with the 10 sprite nodes stacked.

  • source
  • parent