Arrays 在gamemaker中并排显示阵列中的2个选项?

Arrays 在gamemaker中并排显示阵列中的2个选项?,arrays,menu,Arrays,Menu,最近我购买了gamemaker,并按照Shaun Spalding的菜单教程进行设置,但我遇到了一些我想用代码更改的东西。在本教程中,阵列中的选项的位置是一个在另一个之上,但是对于我的游戏,我希望它们彼此紧挨着,这样选项1可以放置在屏幕左侧,选项2可以放置在屏幕右侧的同一“线”上(但仍然可以在选择任一选项之间切换) 这就是它当前的样子。 正如你所看到的,当我真的想要它们并排的时候,它们是相互超越的 这是我的代码: “创建”事件: instruction[0] = "Back"; instruc

最近我购买了gamemaker,并按照Shaun Spalding的菜单教程进行设置,但我遇到了一些我想用代码更改的东西。在本教程中,阵列中的选项的位置是一个在另一个之上,但是对于我的游戏,我希望它们彼此紧挨着,这样选项1可以放置在屏幕左侧,选项2可以放置在屏幕右侧的同一“线”上(但仍然可以在选择任一选项之间切换)

这就是它当前的样子。

正如你所看到的,当我真的想要它们并排的时候,它们是相互超越的

这是我的代码:

“创建”事件:

instruction[0] = "Back";
instruction[1] = "Start Game";


space = 100;
ipos = 0;
“步骤”事件:

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();
var-move=0;
移动-=最大值(按下键盘检查(vk左),按下键盘检查(ord(“A”)),0;
移动+=最大值(按键盘检查(右键),按键盘检查(右键),0);
如果(移动!=0)
{
IPO+=移动;
如果(ipos<0)ipos=array_length_1d(指令)-1;
如果(ipos>array_length_1d(指令)-1)ipos=0;
}
var推送;
push=max(键盘检查释放(vk输入),键盘检查释放(vk移位),键盘检查释放(vk空格),0;
if(push==1)scr_指令();
“抽签”活动:

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);
draw\u set\u halign(左前);
绘制集合有效(中间);
绘制设置字体(fnt选项);
绘制设置颜色(c_白色);
var-m;
对于(m=0;m

有人知道我需要修改什么才能让它工作吗?

您的绘图文本似乎增加了循环中每次迭代的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);

请澄清:代码在?是的,它是在游戏机语言。感谢您的回复!不幸的是,这似乎不起作用-它确实将单词放在同一行上,但它们重叠并有效地“粘住”在一起,唯一改变的间距是单词和draw_sprite图像之间的间隙。还有其他想法吗?好的,当你手动输入坐标时会发生什么?两个文本条目的示例(100100)和(500100)。当你找到看起来不错的坐标时,你也可以调整draw_精灵。如果我添加一组坐标,这两个选项仍然“粘住”在一起-如果我尝试为每个选项添加多个坐标,我会得到错误“预期参数数3得到0”。当代码看起来像这样时;绘制文本((641400),(20001400),字符串(指令[m])。我试图通过使用指令[0]和指令[1]在数组中精确定位它们来分离它们,但我只是得到了相同错误的不同变体。您必须执行一次调用才能为“指令”中的每个元素绘制_文本。因此,删除for循环并执行以下操作:draw_text(100100,string(指令[0]))draw_text(500100,string(指令[1]))