-
Notifications
You must be signed in to change notification settings - Fork 0
/
scr_Snake_Head_Step.gml
103 lines (103 loc) · 3 KB
/
scr_Snake_Head_Step.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
switch (prvDir)
{
case dirs.Left:
if keyboard_check_pressed(ord("D"))
{xSp = 0; ySp = -32; curDir = dirs.Up;}
else if keyboard_check_pressed(ord("A"))
{xSp = 0; ySp = 32; curDir = dirs.Down;}
if view_angle[1] != 270
{
if view_angle[1] > 270||view_angle[1] < 90
{view_angle[1] -= 5;}
if view_angle[1] < 270 && view_angle[1] > 90
{view_angle[1] += 5;}
}
if global.xRot != 0
{global.xRot -= 1.8;}
if global.yRot != 32.4
{global.yRot += 1.8;}
break;
case dirs.Right:
if keyboard_check_pressed(ord("A"))
{xSp = 0; ySp = -32; curDir = dirs.Up;}
else if keyboard_check_pressed(ord("D"))
{xSp = 0; ySp = 32; curDir = dirs.Down;}
if view_angle[1] != 90
{
if view_angle[1] > 90&&view_angle[1] < 270
{view_angle[1] -= 5;}
if view_angle[1] < 90 || view_angle[1] > 270
{view_angle[1] += 5;}
}
if global.xRot != 32.4
{global.xRot += 1.8;}
if global.yRot != 0
{global.yRot -= 1.8;}
break;
case dirs.Up:
if keyboard_check_pressed(ord("A"))
{xSp = -32; ySp = 0; curDir = dirs.Left;}
else if keyboard_check_pressed(ord("D"))
{xSp = 32; ySp = 0; curDir = dirs.Right;}
if view_angle[1] != 0
{
if view_angle[1] > 0&&view_angle[1] < 180
{view_angle[1] -= 5;}
if view_angle[1] < 360 && view_angle[1] > 180
{view_angle[1] += 5;}
}
if global.xRot != 0
{global.xRot -= 1.8;}
if global.yRot != 0
{global.yRot -= 1.8;}
break;
case dirs.Down:
if keyboard_check_pressed(ord("D"))
{xSp = -32; ySp = 0; curDir = dirs.Left;}
else if keyboard_check_pressed(ord("A"))
{xSp = 32; ySp = 0; curDir = dirs.Right;}
if view_angle[1] != 180
{
if view_angle[1] > 180&&view_angle[1] < 360
{view_angle[1] -= 5;}
if view_angle[1] < 180 && view_angle[1] > 0
{view_angle[1] += 5;}
}
if global.xRot != 32.4
{global.xRot += 1.8;}
if global.yRot != 32.4
{global.yRot += 1.8;}
break;
}
if timer <= 0
{
xPrevious = x;
yPrevious = y;
prvDir = curDir;
x+=xSp;
y+=ySp;
timer = 10 - eaten/10;
instance_create(xPrevious, yPrevious, obj_Snake_Tail);
}
timer--;
if place_meeting(x, y, obj_Snake_Tail)
{
room_restart();
}
if place_meeting(x, y, obj_Food)
{
eaten += global.difficulty;
obj_Ui.playerScore += 50;
}
if x > room_width-global.xRot
{x = 96}
if x < 96 - global.xRot
{x = room_width-64 + global.xRot}
if y > room_height-global.yRot
{y = 32}
if y < 32 - global.yRot
{y = room_height-64 + global.yRot}
if view_angle[1] >360
{view_angle[1] = 5}
if view_angle[1] < 0
{view_angle[1] = 355}