在游戏制作者中与阵列并排显示2个选项?

时间:2019-02-13 04:14:52

标签: arrays menu

最近,我购买了游戏制造商,并按照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);

有人知道我需要进行哪些更改才能使其正常工作吗?

1 个答案:

答案 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);