Skip to content

Commit f6f6b2b

Browse files
committed
Fixes (removed sprite width and height)
1 parent 5d86982 commit f6f6b2b

6 files changed

Lines changed: 111 additions & 121 deletions

File tree

scripts/AdvancedParticleSystem/AdvancedParticleSystem.gml

Lines changed: 93 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
// ADVANCED PARTICLE SYSTEM by Limekys
2-
// VERSION: 2022.07.26
2+
// VERSION: 2022.07.28
33

44
#macro _APS_DT global.particle_system_deltatime //This is a delta time variable, you can replace it with your own if you use your delta time system in the game
55

@@ -259,9 +259,9 @@ function advanced_part_system() constructor {
259259
if additiveblend gpu_set_blendmode(bm_add); //TEMPORARY
260260

261261
if (x_size == 1 && y_size == 1 && angle == 0 && color == c_white && alpha == 1) {
262-
draw_sprite(sprite, subimg, x-part_width_half, y-part_height_half);
262+
draw_sprite(sprite, subimg, x, y);
263263
} else {
264-
draw_sprite_ext(sprite, subimg, x-part_width_half, y-part_height_half, x_size, y_size, angle, color, alpha);
264+
draw_sprite_ext(sprite, subimg, x, y, x_size, y_size, angle, color, alpha);
265265
}
266266

267267
if additiveblend gpu_set_blendmode(bm_normal); //TEMPORARY
@@ -292,89 +292,7 @@ function advanced_part_system() constructor {
292292
}
293293
}
294294

295-
//Basic particle
296-
function particle(part_type) constructor {
297-
self.emitter = undefined;
298-
self.part_type = part_type;
299-
300-
self.sprite = part_type.part_sprite;
301-
self.subimg = part_type.part_subimg; if (part_type.part_subimg_random) subimg = irandom(sprite_get_number(sprite) - 1);
302-
self.life = random_range(part_type.part_time_min,part_type.part_time_max);
303-
self.life_max = life;
304-
305-
self.x = 0;
306-
self.y = 0;
307-
self.direction = random_range(part_type.part_direction_min,part_type.part_direction_max);
308-
self.direction_increase = part_type.part_direction_increase;
309-
self.direction_wiggle = part_type.part_direction_wiggle;
310-
self.speed = max(0, random_range(part_type.part_speed_min,part_type.part_speed_max));
311-
self.speed_increase = part_type.part_speed_increase;
312-
self.speed_wiggle = part_type.part_speed_wiggle;
313-
self.gravity = 0;
314-
self.gravity_direction = part_type.part_gravity_direction;
315-
self.gravity_speed = part_type.part_gravity_speed;
316-
self.point_gravity = 0;
317-
self.point_gravity_x = part_type.part_point_gravity_x;
318-
self.point_gravity_y = part_type.part_point_gravity_y;
319-
self.point_gravity_speed = part_type.part_point_gravity_speed;
320-
321-
self.x_size = random_range(part_type.part_size_min,part_type.part_size_max);
322-
self.y_size = x_size;
323-
self.size_increase = part_type.part_size_increase;
324-
self.size_wiggle = part_type.part_size_wiggle;
325-
self.x_size *= part_type.part_xscale;
326-
self.y_size *= part_type.part_yscale;
327-
self.part_width = part_type.part_sprite_width * x_size;
328-
self.part_height = part_type.part_sprite_height * y_size;
329-
self.part_width_half = part_width / 2;
330-
self.part_height_half = part_height / 2;
331-
332-
self.angle = random_range(part_type.part_angle_min,part_type.part_angle_max);
333-
self.angle_increase = part_type.part_angle_increase;
334-
self.angle_wiggle = part_type.part_angle_wiggle;
335-
self.angle_relative = part_type.part_angle_relative;
336-
337-
self.color = part_type.part_color;
338-
self.alpha = 1;
339-
340-
self.colors_enabled = part_type.colors_enabled;
341-
if colors_enabled {
342-
self.color1 = part_type.part_color_1;
343-
self.color2 = part_type.part_color_2;
344-
self.color3 = part_type.part_color_3;
345-
color = color1;
346-
}
347-
348-
self.alpha_blend_enabled = part_type.alpha_blend_enabled;
349-
if self.alpha_blend_enabled {
350-
self.alpha1 = part_type.part_alpha_1;
351-
self.alpha2 = part_type.part_alpha_2;
352-
self.alpha3 = part_type.part_alpha_3;
353-
self.alpha = alpha1;
354-
}
355-
356-
self.additiveblend = part_type.part_additiveblend;
357-
358-
self.death_part = part_type.part_death_type;
359-
self.death_number = part_type.part_death_number;
360-
361-
self.step_function = is_method(part_type.part_step_func) ? method(self, part_type.part_step_func) : undefined;
362-
}
363-
364-
function advanced_part_emitter(ps, xmin, xmax, ymin, ymax, shape, distribution) constructor {
365-
self.part_sys = ps;
366-
367-
self.x_left = xmin;
368-
self.x_right = xmax;
369-
self.y_top = ymin;
370-
self.y_down = ymax;
371-
372-
self.emitter_shape = shape;
373-
self.emitter_distr = distribution;
374-
375-
array_push(ps.emitters_array, self);
376-
}
377-
295+
//Particle type
378296
function advanced_part_type() constructor {
379297
self.part_sprite = undefined;
380298
self.part_subimg = 0;
@@ -411,9 +329,6 @@ function advanced_part_type() constructor {
411329
self.part_angle_wiggle = 0;
412330
self.part_angle_relative = false;
413331

414-
self.part_sprite_width = 0;
415-
self.part_sprite_height = 0;
416-
417332
self.part_speed_min = 0;
418333
self.part_speed_max = 0;
419334
self.part_speed_increase = 0;
@@ -444,8 +359,6 @@ function advanced_part_type() constructor {
444359
///@func part_image(sprite, subimg, color, animate, stretch, is_random)
445360
static part_image = function(sprite, subimg, color, animate, stretch, is_random) {
446361
self.part_sprite = sprite;
447-
self.part_sprite_width = sprite_get_width(self.part_sprite);
448-
self.part_sprite_height = sprite_get_height(self.part_sprite);
449362
self.part_subimg = subimg;
450363
self.part_color = color;
451364
self.part_animate = animate;
@@ -565,6 +478,94 @@ function advanced_part_type() constructor {
565478
}
566479
}
567480

481+
//Particle
482+
function particle(part_type) constructor {
483+
self.emitter = undefined;
484+
self.part_type = part_type;
485+
486+
self.sprite = part_type.part_sprite;
487+
self.subimg = part_type.part_subimg; if (part_type.part_subimg_random) subimg = irandom(sprite_get_number(sprite) - 1);
488+
self.life = random_range(part_type.part_time_min,part_type.part_time_max);
489+
self.life_max = life;
490+
491+
self.x = 0;
492+
self.y = 0;
493+
self.direction = random_range(part_type.part_direction_min,part_type.part_direction_max);
494+
self.direction_increase = part_type.part_direction_increase;
495+
self.direction_wiggle = part_type.part_direction_wiggle;
496+
self.speed = max(0, random_range(part_type.part_speed_min,part_type.part_speed_max));
497+
self.speed_increase = part_type.part_speed_increase;
498+
self.speed_wiggle = part_type.part_speed_wiggle;
499+
self.gravity = 0;
500+
self.gravity_direction = part_type.part_gravity_direction;
501+
self.gravity_speed = part_type.part_gravity_speed;
502+
self.point_gravity = 0;
503+
self.point_gravity_x = part_type.part_point_gravity_x;
504+
self.point_gravity_y = part_type.part_point_gravity_y;
505+
self.point_gravity_speed = part_type.part_point_gravity_speed;
506+
507+
self.x_size = random_range(part_type.part_size_min,part_type.part_size_max);
508+
self.y_size = x_size;
509+
self.size_increase = part_type.part_size_increase;
510+
self.size_wiggle = part_type.part_size_wiggle;
511+
self.x_size *= part_type.part_xscale;
512+
self.y_size *= part_type.part_yscale;
513+
514+
self.angle = random_range(part_type.part_angle_min,part_type.part_angle_max);
515+
self.angle_increase = part_type.part_angle_increase;
516+
self.angle_wiggle = part_type.part_angle_wiggle;
517+
self.angle_relative = part_type.part_angle_relative;
518+
519+
self.color = part_type.part_color;
520+
self.alpha = 1;
521+
522+
self.colors_enabled = part_type.colors_enabled;
523+
if colors_enabled {
524+
self.color1 = part_type.part_color_1;
525+
self.color2 = part_type.part_color_2;
526+
self.color3 = part_type.part_color_3;
527+
color = color1;
528+
}
529+
530+
self.alpha_blend_enabled = part_type.alpha_blend_enabled;
531+
if self.alpha_blend_enabled {
532+
self.alpha1 = part_type.part_alpha_1;
533+
self.alpha2 = part_type.part_alpha_2;
534+
self.alpha3 = part_type.part_alpha_3;
535+
self.alpha = alpha1;
536+
}
537+
538+
self.additiveblend = part_type.part_additiveblend;
539+
540+
self.death_part = part_type.part_death_type;
541+
self.death_number = part_type.part_death_number;
542+
543+
self.step_function = is_method(part_type.part_step_func) ? method(self, part_type.part_step_func) : undefined;
544+
}
545+
546+
//Emitters
547+
function advanced_part_emitter(ps, xmin, xmax, ymin, ymax, shape, distribution) constructor {
548+
self.part_sys = ps;
549+
self.x_left = xmin;
550+
self.x_right = xmax;
551+
self.y_top = ymin;
552+
self.y_down = ymax;
553+
self.emitter_shape = shape;
554+
self.emitter_distr = distribution;
555+
array_push(ps.emitters_array, self);
556+
}
557+
558+
function advanced_part_emitter_region(part_emit, xmin, xmax, ymin, ymax, shape, distribution) {
559+
with(part_emit) {
560+
self.x_left = xmin;
561+
self.y_top = ymin;
562+
self.x_right = xmax;
563+
self.y_down = ymax;
564+
self.emitter_shape = shape;
565+
self.emitter_distr = distribution;
566+
}
567+
}
568+
568569
function advanced_part_emitter_burst(ps, part_emit, part_type, number) {
569570
// WITH DELTATIME // Burst particles with deltatime (create numbers of particles within a second)
570571
// WITHOUT DELTATIME // And burst particles without deltatime (create numbers of particles each step)
@@ -605,6 +606,7 @@ function advanced_part_emitter_burst(ps, part_emit, part_type, number) {
605606
part_type.spawn_timer = part_type.spawn_timer mod spawn_interval;
606607
}
607608

609+
//Simple particle creating
608610
function advanced_part_particles_create(ps, x, y, part_type, number) {
609611
repeat (number) {
610612
var part = new particle(part_type);
@@ -615,15 +617,3 @@ function advanced_part_particles_create(ps, x, y, part_type, number) {
615617
array_push(ps.particle_array, part);
616618
}
617619
}
618-
619-
function advanced_part_emitter_region(part_emit, xmin, xmax, ymin, ymax, shape, distribution) {
620-
with(part_emit) {
621-
x_left = xmin;
622-
y_top = ymin;
623-
x_right = xmax;
624-
y_down = ymax;
625-
626-
emitter_shape = shape;
627-
emitter_distr = distribution;
628-
}
629-
}
-25 Bytes
Loading
-25 Bytes
Loading

sprites/s_heart/s_heart.yy

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sprites/s_pixel/s_pixel.yy

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

sprites/s_pixel_big/s_pixel_big.yy

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)