Re: A89: Sprite Question


[Prev][Next][Index][Thread]

Re: A89: Sprite Question




>I know this is a really dumb question probably, but could someone tell me
>how to convert sprites into the format needed for TIGCC, I've never seen
>that format before.  Thanks.
>
>-Ahmed

The best way I can describe it is to do it by hand...


Take a piece of graph paper and make a 16x16 square of blocks. Within 
that, draw your sprite. Now, starting at the top line of pixels, take 
the first four blocks and pretend that colored in equals 1, and empty 
equals 0. Now, put the four numbers together and pretend it's a 
binary number. Convert that number to hex. That's the first 'number'. 
Do this for the next 3 groups of 4 block in the first row. Put all 
four hex digits together, and that's one index.

Example: take this ball below.

0000	1111	1111	0000	0x0ff0
0001	1111	1111	1000	0x1ff8
0011	1111	1111	1100	0x3ffc
0111	1111	1111	1110	0x7ffe
1111	1111	1111	1111	0xffff
1111	1111	1111	1111	0xffff
1111	1111	1111	1111	0xffff
1111	1111	1111	1111	0xffff
1111	1111	1111	1111	0xffff
1111	1111	1111	1111	0xffff
1111	1111	1111	1111	0xffff
1111	1111	1111	1111	0xffff
0111	1111	1111	1110	0x7ffe
0011	1111	1111	1100	0x3ffc
0001	1111	1111	1000	0x1ff8
0000	1111	1111	0000	0x0ff0


Now, put this in the actual declaration...

static unsigned ball [] = {0x0ff0, 0x1ff8, 0x3ffc, 0x7ffe, 0xffff, 
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0x7ffe, 
0x3ffc, 0x1ff8, 0x0ff0};

FYI: Sprite16 is buggy, so you'll have to use Sprite32. In this case 
your declaration would be...

static unsigned ball [] = {0x0ff00000, 0x1ff80000, 0x3ffc0000, 
0x7ffe0000, 0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 
0xffff0000, 0xffff0000, 0xffff0000, 0xffff0000, 0x7ffe0000, 
0x3ffc0000, 0x1ff80000, 0x0ff00000};

Hope this helps,

Nathaniel Gibson
ngibson@ptd.net



Follow-Ups: References: