That's what I was trying to say when I said "add or subtract the distance between the other sprite and load the value into the other sprite to keep the distance between them the same.", but I'm really not good with words. I actually made a 32x16 spaceship this way before I even knew what metasprite meant. I was getting myself confused for some reason because I was thinking of using a sprite's coordinates for other sprites, but I was saying that that really wouldn't work because all the sprites would be jumbled around from metasprites appearing or disappearing or growing or shrinking. Basically, I was thinking that I would have to load from OAM every frame to dictate where the metasprite would be, but I guess I can just have separate registers for each metasprites x and y courdinates.bazz wrote:just have a metasprite x,y
based on the metasprite's x,y
automatic calculations can be performed to derive the proper relative x/y coordinates of the sub-sprites.
For instance, in your 16x32 example, composed of 2 16x16 sprites.. call em sprite0 and sprite 1 in this example
metasprite x,y , call em mx,my
thus,
sprite0 x,y = (mx,my)
sprite1 x,y = (mx,my + 16)
metasprite's x,y is the "controller" coordinates which the subsprite coords are derived from. It's easy
The only thing left I wonder is how you would write out the positions for the sprites that make up each metasprite? I basically mean that when you are done with this,
wouldn't you have to load the results into a register that goes to OAM, or would you just send the results strait to OAM? It seems kind of tricky making it make sure that each set of x and y courdinates are 2 registers apart. Actually, you really probably don't need to worry because you would fill the gaps with other sprite information. It still seems difficult to transfer the data to hi oam, though.bazz wrote:sprite0 x,y = (mx,my)
sprite1 x,y = (mx,my + 16)
I really just need to get ahold of psychopathicteen...