最近,我购买了游戏制造商,并按照Shaun Spalding的菜单教程进行了设置,但是遇到了一些我想用代码进行更改的内容。在本教程中,将数组中的选项放置在彼此之上的位置,但是对于我的游戏,我希望它们彼此相邻,以便将选项1放置在屏幕的左侧,并且2位于屏幕右侧的同一行上(但仍可以在选择其中一个之间切换)。
这是当前的样子。
如您所见,当我真的想要它们并排时,它们是彼此叠置的。
这是我的代码:
“创建”事件:
instruction[0] = "Back";
instruction[1] = "Start Game";
space = 100;
ipos = 0;
'Step'事件:
var move = 0;
move -= max(keyboard_check_pressed(vk_left),keyboard_check_pressed(ord("A")),0);
move += max(keyboard_check_pressed(vk_right),keyboard_check_pressed(ord("D")),0);
if (move != 0)
{
ipos += move;
if (ipos < 0) ipos = array_length_1d(instruction) - 1;
if (ipos > array_length_1d(instruction) - 1) ipos = 0;
}
var push;
push = max(keyboard_check_released(vk_enter),keyboard_check_released(vk_shift),keyboard_check_released(vk_space),0);
if (push == 1) scr_instructions();
“抽奖”事件:
draw_set_halign(fa_left);
draw_set_valign(fa_middle);
draw_set_font(fnt_options);
draw_set_color(c_white);
var m;
for (m = 0; m < array_length_1d(instruction); m += 1)
{
draw_text(x + space, y + (m * space),string(instruction[m]))
}
draw_sprite(sprite_index, -1, x + 16, y + ipos * space - 21);
有人知道我需要进行哪些更改才能使其正常工作吗?
答案 0 :(得分:0)
您的draw_text似乎增加了循环中每次迭代的y坐标。
尝试使用m来增加x。
示例:
draw_text(x + (m * space), y + space,string(instruction[m]))
您可能必须调整间距才能获得所需的外观。
最简单的方法可能是硬编码坐标而不是使用循环。
对draw_sprite做同样的事情。
draw_sprite(sprite_index, -1, x + 16 + ipos * space, y - 21);