base:sprite_data_and_kickassembler
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
— | base:sprite_data_and_kickassembler [2015-04-17 04:33] (current) – created - external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Using KickAss to include .gif sprite data ====== | ||
+ | [[http:// | ||
+ | |||
+ | < | ||
+ | .pc = $3000 " | ||
+ | spriteData: | ||
+ | |||
+ | : | ||
+ | : | ||
+ | : | ||
+ | // etc | ||
+ | |||
+ | |||
+ | |||
+ | .macro LoadSpriteFromPicture(filename) { | ||
+ | .var picture = LoadPicture(filename, | ||
+ | .for (var y=0; y<21; y++) | ||
+ | .for (var x=0; x<3; x++) | ||
+ | .byte picture.getMulticolorByte(x, | ||
+ | .byte 0 | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | The example was posted in the following [[http:// | ||
+ | |||
+ | ====== Using KickAss to convert an image to rows of sprites ====== | ||
+ | |||
+ | Another question popped up in the [[http:// | ||
+ | |||
+ | The following macro converts any sized image (png/ | ||
+ | Correct size should be: width = N * 3 * 8, height = M * 21. | ||
+ | |||
+ | < | ||
+ | // in this example logo.png is a 4 color (black and 3 greys in pepto palette) 192x84 pixels image | ||
+ | // this will convert it to 32 sprites (4 rows of 8 sprites) | ||
+ | |||
+ | : | ||
+ | |||
+ | .macro LoadSpritesFromPicture( filename, bgcolor, color0, color1, color2 ) { | ||
+ | |||
+ | .var picture | ||
+ | .var xsprites = floor( picture.width | ||
+ | .var ysprites = floor( picture.height / 21 ) | ||
+ | |||
+ | .for (var ysprite = 0; ysprite < ysprites; ysprite++) { | ||
+ | .for (var xsprite = 0; xsprite < xsprites; xsprite++) { | ||
+ | .for (var i = 0; i < [3 * 21]; i++) { | ||
+ | .byte picture.getMulticolorByte( | ||
+ | [[xsprite * 3] + mod(i, 3)], | ||
+ | [[ysprite * 21] + floor(i / 3)] | ||
+ | ) | ||
+ | } | ||
+ | .byte 0 | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ |
base/sprite_data_and_kickassembler.txt · Last modified: 2015-04-17 04:33 by 127.0.0.1