I am new to game maker. I am trying to create a start menu based on these tutorials.
the second tutorial appears to account for the recent array changes. They work well mostly but in menu case 2 (options) it refuses to take me to the corresponding options sub menu. It instead it uses either case 1 (load) or case 3(exit game) depending on the direction I scroll into case 2.
I keep looking for errors but I cannot find any. I feel like I am messing up something very simple.
Here is my code. Thank y'all for your help.
version IDE v2.3.5.589
obj_techincal_Page
event: create
obj_techincal_Page
event: step
obj_techincal_Page
event: draw
I keep looking for errors but I cannot find any. I feel like I am messing up something very simple.
Here is my code. Thank y'all for your help.
version IDE v2.3.5.589
obj_techincal_Page
event: create
GML:
/// variables
#macro main 0
#macro settings 1
Tmenu[main][0] = "SAVE";
Tmenu[main][1] = "LOAD";
Tmenu[main][2] = "OPTIONS";
Tmenu[main][3] = "EXIT GAME";
Tmenu[settings][0] = "GRAPHICS"
Tmenu[settings][1] = "AUDIO"
Tmenu[settings][2] = "CONTROLS"
Tmenu[settings][3] = "BACK"
Tindex = 0;
TSub_Menu = main;
obj_techincal_Page
event: step
GML:
///// Rindex
var _up = keyboard_check_pressed(vk_up);
var _down = keyboard_check_pressed(vk_down);
var _select = keyboard_check_pressed(vk_enter);
var _move = _down - _up;
if _move != 0
{
Tindex += _move;
var _size = array_length(Tmenu[TSub_Menu]);
if Tindex < 0 Tindex = _size -1;
else if Tindex >= _size Tindex = 0;
}
//// select things to happen
if _select {
switch(TSub_Menu) {
case main:// main menu
switch(Tindex) {
case 0:///save
room_goto(room_save);
break;
case 1:///load
room_goto(room_load);
break;
case 2:
TSub_Menu = settings;
Tindex = 0;
break;
case 3: ///exit game
game_end()
break;
}
break;
case settings:
switch(Tindex) {
case 0:///GRAPCHICS
room_goto(room_save);
break;
case 1:///AUDIO
room_goto(room_load);
break;
case 2:///CONTROLS
room_goto(room_controls);
break;
case 3: ///BACK
TSub_Menu = main;
Tindex = 0;
break;
}
break;
}
}
obj_techincal_Page
event: draw
GML:
/// draw self
draw_self()
/// draw Roster menu options
draw_set_halign(fa_center)
draw_set_font(Font1)
var _gap = 20;
for (var i = 0; i < array_length(Tmenu[TSub_Menu]); ++i)
{
draw_set_color(c_black);
if i == Tindex draw_set_color(c_red);
draw_text(obj_Protagonist.x + 16, obj_Protagonist.y - 32 +_gap * i,Tmenu[TSub_Menu][i]);
}