-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathSCR_physics_speed.gml
113 lines (100 loc) · 2.34 KB
/
SCR_physics_speed.gml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// Actions
if (releasedLeft == true)
{
hspeed += 0.12;
if (hspeed >= 0)
{
hspeed = 0;
playerImaStop = 0;
okStop = true;
releasedLeft = false;
}
}
if (releasedRight == true)
{
hspeed -= 0.12;
if (hspeed <= 0)
{
hspeed = 0;
playerImaStop = 0;
okStop = true;
releasedRight = false;
}
}
// ---- Walk and Run ----
// Sprites (Speed)
if (hspeed > 0 && hspeed > 7 || hspeed < 0 && hspeed < -7)
{
speed_spr = 0.8;
}
if (hspeed > 0 && hspeed < 8 || hspeed < 0 && hspeed > -8)
{
speed_spr = 0.7;
}
if (hspeed > 0 && hspeed < 7 || hspeed < 0 && hspeed > -7)
{
speed_spr = 0.6;
}
if (hspeed > 0 && hspeed < 6 || hspeed < 0 && hspeed > -6)
{
speed_spr = 0.5;
}
if (hspeed > 0 && hspeed < 5 || hspeed < 0 && hspeed > -5)
{
speed_spr = 0.4;
}
if (hspeed > 0 && hspeed < 4 || hspeed < 0 && hspeed > -4)
{
speed_spr = 0.35;
}
// Sprites (Frames)
if (global.playerJump == false && global.playerSpinDash == false //Not jumping
&& !place_meeting(x+hspeed, y, OBJ_collision_wall) //Not wall
&& !place_meeting(x+hspeed, y, OBJ_monitors) //Not monitors
&& !(x-9+hspeed < view_xview[0] || x+6+hspeed > view_xview[0]+view_wview[0]) //Not view margin
&& !(x+9+hspeed <= 9 || x+hspeed >= room_width-9)) //Not room margin
{
// Walk
if (hspeed > 0 && hspeed < 7 || hspeed < 0 && hspeed > -7)
{
sprite_index = SPR_player_walk;
image_speed = speed_spr;
}
// Run
if (hspeed > 6 || hspeed < -6)
{
sprite_index = SPR_player_run;
image_speed = speed_spr;
}
}
// ---- Spin jump ----
if (global.playerJump == true && global.playerJumpSpring == false &&
global.playerFly == false)
{
sprite_index = SPR_player_spin;
image_speed = 0.65;
}
// ---- Spring Jump ----
if (global.playerJump == true && global.playerJumpSpring == true &&
global.playerFly == false)
{
// Jump
if (vspeed < 0)
{
sprite_index = SPR_player_jump;
image_speed = 0.4;
}
// Falling Down
if (vspeed > 0)
{
sprite_index = SPR_player_walk;
image_speed = 0.4;
}
}
// ---- Tails Fly ----
if (global.playerJump == true && global.playerJumpSpring == false &&
global.playerFly == true && global.player == 2)
{
sprite_index = SPR_player_fly;
image_speed = 0.65;
}