1 |
if ((y - height) > (cameray() + 500) || x < (camerax() - 100) || x > (camerax() + 740) || (!airborne && y < (cameray() - 100))) |
2 |
{ |
3 |
if (i_ex(shadow)) |
4 |
instance_destroy(shadow); |
5 |
instance_destroy(); |
6 |
} |
7 |
if (!init) |
8 |
{ |
9 |
init = true; |
10 |
if (i_ex(shadow)) |
11 |
shadow.depth = maxDepth; |
12 |
} |
13 |
falltime++; |
14 |
if (!airborne) |
15 |
{ |
16 |
if (!destroyOnLand) |
17 |
exit; |
18 |
siner -= 0.1; |
19 |
image_alpha = min(siner, 1); |
20 |
if (siner <= 0) |
21 |
{ |
22 |
if (i_ex(shadow)) |
23 |
instance_destroy(shadow); |
24 |
instance_destroy(); |
25 |
} |
26 |
exit; |
27 |
} |
28 |
if (fallspeed < 0) |
29 |
fallspeed += fallFriction; |
30 |
if (fallspeed > -5) |
31 |
fallFriction = 0.4; |
32 |
if (speed < 5) |
33 |
friction = 0.4; |
34 |
if (fallspeed < 2) |
35 |
fallspeed = scr_movetowardsscr_movetowardsfunction scr_movetowards(arg0, arg1, arg2)
{
if (arg0 == arg1)
return arg0;
else if (arg0 > arg1)
return max(arg0 - arg2, arg1);
else
return min(arg0 + arg2, arg1);
} (fallspeed, 2, 0.1); |
36 |
height -= fallspeed; |
37 |
if (airborne && height <= 0 && y < maxy) |
38 |
{ |
39 |
instance_destroy(shadow); |
40 |
fallspeed = 0; |
41 |
height = 0; |
42 |
airborne = false; |
43 |
image_index = (image_index < 4) ? 3 : 7; |
44 |
speed = 0; |
45 |
image_speed = 0; |
46 |
x += sin(siner / 15); |
47 |
depth = maxDepth - falltime; |
48 |
siner = 3; |
49 |
exit; |
50 |
} |
51 |
x += (sin(siner / 15) * (fallspeed / 2)); |
52 |
siner++; |
53 |
image_speed = 1 + (speed / 15); |
54 |
scr_depth(); |
55 |
if (i_ex(shadow)) |
56 |
{ |
57 |
shadow.image_alpha = (y > maxy) ? 0 : 1; |
58 |
shadow.image_index = image_index; |
59 |
shadow.x = x + ((sprite_width - shadow.sprite_width) / 2); |
60 |
shadow.y = y + ((sprite_height - shadow.sprite_height) / 2); |
61 |
var shadowScale = clamp((40 - (height / 2)) / 20, 0, 2); |
62 |
shadow.image_xscale = shadowScale; |
63 |
shadow.image_yscale = shadowScale; |
64 |
} |