Hello everyone. Today I wrote a script to swap Sprites positions without messing with the Map. Very handy to reorganise your sprite sheet. And Flags will follow. Here's how it works:
1- Make a backup
First thing first: make a backup of your p8 file!
This is important, as you can screw things up real quick if you do not pay attention.
2- Get the script
Create an empty file named "swapspr.lua" that you'll put alongside your p8 file.
Copy/paste this script to "swapspr.lua" and save it:
function swapspr(n1,n2) for i=0,7 do local p1=i*64+n1*4+448*flr(n1/16) local p2=i*64+n2*4+448*flr(n2/16) local b1,b2=peek4(p1),peek4(p2) poke4(p2,b1) poke4(p1,b2) end local f1,f2=fget(n1),fget(n2) fset(n1,f2) fset(n2,f1) for x=0,127 do for y=0,127 do if mget(x,y)==n1 then mset(x,y,n2) elseif mget(x,y)==n2 then mset(x,y,n1) end end end cstore(0x0000,0x0000,0x7fff) end ---------------------
3- Prepare your p8 file
Open your p8 file and add those two line at the very begining of your code:
#include swapspr.lua swapspr(3,6)
In this example, we are swaping positions of sprites numbers 3 and 6:
Run your p8 file and that's it!
Your sprites position have swaped while keeping their flags:
And (magic) the Map didn't change:
Run this script as long as you need to swap positions.
Don't forget to remove the two lines you added at the start of your code once you have finished.
I hope this will save a lot of time for the Pico-Eighters like me that don't think about sprite order until the need to save space and tokens...
Right now, it only swaps 8x8 sprites, but that can be modified easily.
[Please log in to post a comment]