1 |
for (var i = 0; i < 3; i++) |
2 |
{ |
3 |
var current_sprite = current_sprites[i]; |
4 |
var resolution_factor = 1; |
5 |
if (ds_map_exists(global.firework_sprite_pixel_data, current_sprite)) |
6 |
continue; |
7 |
var h_pixels = sprite_get_width(current_sprite) * resolution_factor; |
8 |
var v_pixels = sprite_get_height(current_sprite) * resolution_factor; |
9 |
var x_offset = sprite_get_xoffset(current_sprite) * resolution_factor; |
10 |
var y_offset = sprite_get_yoffset(current_sprite) * resolution_factor; |
11 |
var surf = surface_create(h_pixels, v_pixels); |
12 |
surface_set_target(surf); |
13 |
draw_clear_alpha(c_black, 0); |
14 |
draw_sprite_ext(current_sprite, 0, x_offset, y_offset, resolution_factor, resolution_factor, 0, c_white, 1); |
15 |
surface_reset_target(); |
16 |
var pixels = 0; |
17 |
var pixelx = []; |
18 |
var pixely = []; |
19 |
var pixelrgb = []; |
20 |
var pixelalpha = []; |
21 |
for (var _x = 0; _x < h_pixels; _x++) |
22 |
{ |
23 |
for (var _y = 0; _y < v_pixels; _y++) |
24 |
{ |
25 |
var col = surface_getpixel_ext(surf, _x, _y); |
26 |
var _alpha = (col >> 24) & 255; |
27 |
if (_alpha == 0) |
28 |
continue; |
29 |
var _blue = (col >> 16) & 255; |
30 |
var _green = (col >> 8) & 255; |
31 |
var _red = col & 255; |
32 |
pixelrgb[pixels] = make_colour_rgb(_red, _green, _blue); |
33 |
pixelalpha[pixels] = _alpha; |
34 |
pixelx[pixels] = _x - x_offset; |
35 |
pixely[pixels] = _y - y_offset; |
36 |
pixels++; |
37 |
} |
38 |
} |
39 |
surface_free(surf); |
40 |
var width = h_pixels; |
41 |
var height = v_pixels; |
42 |
ds_map_add(global.firework_sprite_pixel_data, current_sprite, [pixels, pixelx, pixely, width, height, pixelrgb, pixelalpha]); |
43 |
} |