Log In  

Cart #bomegafazu-0 | 2020-08-17 | Code ▽ | Embed ▽ | License: CC4-BY-NC-SA


when I import a spritesheet, it doesn't work as I expected. Former sprite 0 is placed on sprite 1, sprite 1 on sprite 2 etc. Please see image.

Is this supposed to work this way? All sprites shift one, this is really inconvenient. You would expect to get an exact copy of the original spritesheet. Or am I doing something wrong?


P#80898 2020-08-17 22:18


When you import a spritesheet, make sure you have sprite zero selected on the sprite editor, or else it will shift everything, as you described.
I believe that's what's causing you this problem. You need to have sprite zero selected before importing.

P#80902 2020-08-18 03:13

Ah, thank you, you're absolutely right. That solved my problem. Thanks!

P#80905 2020-08-18 05:43

No problem :)

P#80918 2020-08-18 14:18

I'm not sure since which version it started doing that, but the fact that the sprite cursor starts at 1 instead of 0 is really a problem for quick import iterations.

If importing manually, I need to open the sprite editor, select sprite 0, go back and "import spritesheet.png".

If using a script __lua__ containing the import statement, running pico8 -run data.p8 is not enough, the import would be run after opening the pico8 window and having sprite cursor set to id 1. (for those who don't know, it's possible to run operations like import and save by writing them in the lua code and running the cartridge)

However, a headless call pico8 -x data.p8 will call the import statement with sprite cursor still at the origin, I guess because in headless mode they don't bother moving it.

This means that if you store your spritesheet in a separate cartridge data.p8 that only contains __lua__ import spritesheet.png and visual/audio data, you'll have to do:

pico8 -x data.p8  # update spritesheet at correct location
pico8 data.p8     # open data cartridge to modify manually

But it'd be more simple if cursor stayed at id 0, we'd only need a pico8 -run data.p8.

UPDATE: unfortunately I still get the spritesheet imported from sprite 1 using this method... For now, the only 2 solutions I see are:
a. manually move sprite cursor to 0 then manually enter the import command
b. don't use the 1st column and draw your spritesheet with rows of 15 tiles only... so when pasted with top-left at (1, 0) they still fit. But you'll lose space...

P#82046 2020-09-21 12:40 ( Edited 2020-10-07 01:25)

[Please log in to post a comment]

Follow Lexaloffle:        
Generated 2020-10-21 19:41 | 0.019s | 2097k | Q:35