I am developing a 2D game for android using lots of sprites. I am drawing on the screen using OpenGL ES. I separeted the sprites into several pictures (around 7). I read, that loading a picture into memory takes most of the time. Every picture contains a diffrent category of images: for example – background elements, enemy units, etc, etc. I load them in a defined order: background picture first, so background elements are drawn at the bottom, then the enemy units, etc. But what should I do, if I want to draw elements of the background at the top of the canvas. Should I load the picture with background elements twice? Or store that special element in both pictures – the background picture and the picture containg top elements. Or there is a better way? Thanks!
Share
Loading has nothing to do with rendering. As long as you render something after you’ve loaded it, then you’re fine. The order that things get rendered in is not affected by the order you loaded them in.
Now, if it’s an issue of memory (ie: you can’t load everything at once), then the steps you need to take depend greatly on exactly what you’re doing. We can’t really give you anything more than general advice, because we don’t know everything about what you’re doing.
In general, you need to break down your rendered world into chunks that fit in memory. This will put constraints on your design: you can’t use stuff (be it backgrounds, enemy units, whatever) from outside of that chunk. Since you’re developing on limited platforms, you’re just going to have to put up with those constraints.