Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///draw_sprite_wavy(x,y,sprite_index,image_index,bar_height,wave_amt,wave_offset)
- //bar height should usually be 1
- //wave amt is how much horizontal oscillation will occur
- //wave_offset is any linearly increasing variable
- //set up variables
- draw_set_color(c_white);
- var texture = sprite_get_texture(argument2, argument3);
- var spr_width = sprite_get_width(argument2);
- var spr_height = sprite_get_height(argument2);
- var tex_height = texture_get_height(texture);
- var tex_offset = 0;
- var ver_offset = 0;
- var deg_offset = argument6 mod 360;
- var hor_offset = cos(degtorad(deg_offset))*argument5;
- var bar_height = argument4;
- //begin drawing primitive
- draw_primitive_begin_texture(pr_trianglestrip, texture);
- //top of the sprite
- draw_vertex_texture(argument0+hor_offset, argument1, 0, 0);
- draw_vertex_texture(argument0+spr_width+hor_offset, argument1, 1, 0);
- //rest of the sprite
- while (ver_offset <= spr_height)
- {
- //update texture offset
- tex_offset = (ver_offset/spr_height)*tex_height;
- //add vertices
- draw_vertex_texture(argument0+hor_offset, argument1+ver_offset, 0, tex_offset);
- draw_vertex_texture(argument0+spr_width+hor_offset, argument1+ver_offset, 1, tex_offset);
- //oscillate wave
- hor_offset = cos(degtorad(deg_offset))*argument5;
- deg_offset += 2;
- deg_offset = deg_offset mod 360;
- //move down to next horizontal chunk
- ver_offset += bar_height;
- }
- draw_primitive_end();
RAW Paste Data