|
1
|
if (instance_exists(obj_heart))
|
|
2
|
{
|
|
3
|
rborder = lerp(maxx, suckx, suckpower);
|
|
4
|
uborder = miny;
|
|
5
|
dborder = maxy;
|
|
6
|
if (snapback == 0)
|
|
7
|
obj_heart.x += suckpower;
|
|
8
|
if (snapback <= 0 && global.turntimer <= 30 && obj_heart.x >= (rborder - 22))
|
|
9
|
{
|
|
10
|
snapback = suckpower;
|
|
11
|
if (suckpower > 0.5)
|
|
12
|
{
|
|
13
|
if (!instance_exists(obj_shake))
|
|
14
|
{
|
|
15
|
d = instance_create(0, 0, obj_shake);
|
|
16
|
d.shakex = ceil(suckpower * 4);
|
|
17
|
d.shakey = ceil(suckpower * 4);
|
|
18
|
}
|
|
19
|
}
|
|
20
|
}
|
|
21
|
if (snapback > 0)
|
|
22
|
{
|
|
23
|
obj_heart.x -= (20 * scr_ease_inscr_ease_in
function scr_ease_in(arg0, arg1)
{
if (arg1 < -3 || arg1 > 7)
return arg0;
switch (arg1)
{
case -3:
return ease_in_bounce(arg0, 0, 1, 1);
case -2:
return ease_in_elastic(arg0, 0, 1, 1);
case -1:
var _s = 1.70158;
return arg0 * arg0 * (((_s + 1) * arg0) - _s);
case 0:
return arg0;
case 1:
return -cos(arg0 * 1.5707963267948966) + 1;
case 6:
return power(2, 10 * (arg0 - 1));
case 7:
return -(sqrt(1 - sqr(arg0)) - 1);
default:
return power(arg0, arg1);
}
} (snapback, 2));
|
|
24
|
snapback -= 0.1;
|
|
25
|
}
|
|
26
|
if (obj_heart.x < (minx + 3))
|
|
27
|
obj_heart.x = minx + 3;
|
|
28
|
if (obj_heart.x > (rborder - 20))
|
|
29
|
obj_heart.x = rborder - 20;
|
|
30
|
var xoffset = (obj_heart.x - (minx + 3)) / (rborder - 20 - (minx + 3));
|
|
31
|
var uppersuckoffset = (upper_sucky - miny) * xoffset * suckpower;
|
|
32
|
var lowersuckoffset = (maxy - lower_sucky) * xoffset * suckpower;
|
|
33
|
if (obj_heart.y < (uborder + 3 + uppersuckoffset))
|
|
34
|
obj_heart.y = uborder + 3 + uppersuckoffset;
|
|
35
|
if (obj_heart.y > (dborder - 20 - lowersuckoffset))
|
|
36
|
obj_heart.y = dborder - 20 - lowersuckoffset;
|
|
37
|
if (obj_heart.y < (uborder + 3))
|
|
38
|
obj_heart.y = uborder + 3;
|
|
39
|
if (obj_heart.y > (dborder - 20))
|
|
40
|
obj_heart.y = dborder - 20;
|
|
41
|
}
|