Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Beam object:
- Create:
- ///Set_Variables
- dir = 0; //create variable dir
- beam = instance_create(x, y, obj_laserimpact); //Create impact beam
- /*
- When working with this engine make shure the origin point
- of your laser is in the middle, precise collision is ticked
- on and the sprite is only 1 pixle in width. The origin of your
- impact beam should be centered.
- alarm[0] = 1
- Alarm 0:
- instance_destroy()
- step:
- ///Laser
- image_xscale = 1; //reset image_xscale
- while !place_meeting(x, y, obj_partarget)
- {
- if image_xscale < 660
- {image_xscale += 1;}
- else {break;}
- }
- //surface_resize(lasersurf1,image_xscale,100)
- obj_laserimpact.x = x+lengthdir_x(image_xscale, dir); //set x for imapact beam at end of laser
- obj_laserimpact.y = y+lengthdir_y(image_xscale, dir); //set y for imapact beam at end of laser
- xend = x+lengthdir_x(image_xscale, dir);
- yend = y+lengthdir_y(image_xscale, dir);
- draw:
- draw_sprite_tiled_area(spr_beam1,obj_pauseer.laseranim,obj_playertracker.x,obj_playertracker.y-obj_playertracker.vspeed-2,obj_playertracker.x,yend-8,xend,yend+9)
- draw_sprite_tiled_area:
- /// draw_sprite_tiled_area(sprite,subimg,x,y,x1,y2,x2,y2)
- //
- // Draws a repeated sprite image, tiled to fill a given region and with
- // a given offset.
- //
- // sprite sprite to draw, real
- // subimg sprite subimage to draw, real
- // x,y origin offset, real
- // x1,y1 top-left corner of tiled area, real
- // x2,y2 bottom-right corner of tiled area, real
- //
- /// GMLscripts.com/license
- {
- var sprite,subimg,xx,yy,x1,y1,x2,y2;
- sprite = argument0;
- subimg = argument1;
- xx = argument2;
- yy = argument3;
- x1 = argument4;
- y1 = argument5;
- x2 = argument6;
- y2 = argument7;
- var sw,sh,i,j,jj,left,top,width,height,X,Y;
- sw = sprite_get_width(sprite);
- sh = sprite_get_height(sprite);
- i = x1-((x1 mod sw) - (xx mod sw)) - sw*((x1 mod sw)<(xx mod sw));
- j = y1-((y1 mod sh) - (yy mod sh)) - sh*((y1 mod sh)<(yy mod sh));
- jj = j;
- for(i=i; i<=x2; i+=sw) {
- for(j=j; j<=y2; j+=sh) {
- if(i <= x1) left = x1-i;
- else left = 0;
- X = i+left;
- if(j <= y1) top = y1-j;
- else top = 0;
- Y = j+top;
- if(x2 <= i+sw) width = ((sw)-(i+sw-x2)+1)-left;
- else width = sw-left;
- if(y2 <= j+sh) height = ((sh)-(j+sh-y2)+1)-top;
- else height = sh-top;
- draw_sprite_part(sprite,subimg,left,top,width,height,X,Y);
- }
- j = jj;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement