Guest User

Untitled

a guest
Oct 23rd, 2015
26
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ///draw_sprite_wavy(x,y,sprite_index,image_index,bar_height,wave_amt,wave_offset)
  2. //bar height should usually be 1
  3. //wave amt is how much horizontal oscillation will occur
  4. //wave_offset is any linearly increasing variable
  5.  
  6. //set up variables
  7. draw_set_color(c_white);
  8. var texture = sprite_get_texture(argument2, argument3);
  9. var spr_width = sprite_get_width(argument2);
  10. var spr_height = sprite_get_height(argument2);
  11. var tex_height = texture_get_height(texture);
  12. var tex_offset = 0;
  13. var ver_offset = 0;
  14. var deg_offset = argument6 mod 360;
  15. var hor_offset = cos(degtorad(deg_offset))*argument5;
  16. var bar_height = argument4;
  17.  
  18. //begin drawing primitive
  19. draw_primitive_begin_texture(pr_trianglestrip, texture);
  20. //top of the sprite
  21. draw_vertex_texture(argument0+hor_offset, argument1, 0, 0);
  22. draw_vertex_texture(argument0+spr_width+hor_offset, argument1, 1, 0);
  23.  
  24. //rest of the sprite
  25. while (ver_offset <= spr_height)
  26. {
  27. //update texture offset
  28. tex_offset = (ver_offset/spr_height)*tex_height;
  29. //add vertices
  30. draw_vertex_texture(argument0+hor_offset, argument1+ver_offset, 0, tex_offset);
  31. draw_vertex_texture(argument0+spr_width+hor_offset, argument1+ver_offset, 1, tex_offset);
  32. //oscillate wave
  33. hor_offset = cos(degtorad(deg_offset))*argument5;
  34. deg_offset += 2;
  35. deg_offset = deg_offset mod 360;
  36. //move down to next horizontal chunk
  37. ver_offset += bar_height;
  38. }
  39. draw_primitive_end();
RAW Paste Data