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: