Files
AM2R-Community-Updates/scripts/draw_sprite_wave_ext.gml
2020-12-22 20:54:55 -06:00

34 lines
1.1 KiB
Plaintext

/// draw_sprite_wave_ext(sprite, image, posx, posy, axis, wavelength, amplitude, phase, xscale, yscale, blend, alpha)
var sprite = argument0;
var image = argument1;
var posx = argument2;
var posy = argument3;
var axis = argument4;
var wavelength = argument5;
var amplitude = argument6;
var phase = argument7;
var xscale = argument8;
var yscale = argument9;
var blend = argument10;
var alpha = argument11;
var width = sprite_get_width(sprite);
var height = sprite_get_height(sprite);
var xoff = sprite_get_xoffset(sprite);
var yoff = sprite_get_yoffset(sprite);
var size, i, shift, sx, sy;
if (axis) {
size = height;
} else size = width;
for (i = 0; i < size; i += 1) {
shift = amplitude * sin((pi * 2) * (i / wavelength + phase));
if (axis) {
sx = xscale * (shift - xoff) + posx;
sy = yscale * (i - yoff) + posy;
draw_sprite_part_ext(sprite, image, 0, i, width, 1, sx, sy, xscale, yscale, blend, alpha);
} else {
sx = xscale * (i - xoff) + posx;
sy = yscale * (shift - yoff) + posy;
draw_sprite_part_ext(sprite, image, i, 0, 1, height, sx, sy, xscale, yscale, blend, alpha);
}
}