此函数可用于在允许它的目标上设置Gamepad映射。为要设置的游戏手柄提供“动态内容”索引,然后提供映射字符串,应使用Sdl格式和以下字段创建映射字符串:
<guid>,<description>,platform:<platform-name>,<bindings>
每个字段中应包括的详细信息包括:
以逗号分隔的条目列表遵循每个条目的特定格式:
<abstract-gp-name>:<value-binding>
这里<value-binding>(即:直接游戏手柄输入)可以是以下任何一种:
每个输入值都应绑定到一个SDL名称,该名称表示为<>abstract-gp-name>, 该名称又绑定到一个GML常量。下表显示了SDL名称与GameMaker常量之间的等价性:
SDL 名称 | GML 名称 |
---|---|
a | gp_face1 |
b | gp_face2 |
x | gp_face3 |
y | gp_face4 |
leftshoulder | gp_shoulderl |
lefttrigger | gp_shoulderlb |
rightshoulder | gp_shoulderr |
righttrigger | gp_shoulderrb |
guide | gp_select |
start | gp_start |
leftstick | gp_stickl |
rightstick | gp_stickr |
dpup | gp_padu |
dpdown | gp_padl |
dpleft | gp_padr |
dpright | gp_padd |
leftx | gp_axislh |
lefty | gp_axislv |
rightx | gp_axisrh |
righty | gp_axisrv |
当您构造映射字符串时,它应该如下所示:
"050000005e040000fd020000ffff3f00,Xbox Wireless Controller,a:b0,b:b1,start:b4,dpdown:h0.4,dpleft:h0.8,dpright:h0.2,dpup:h0.1,guide:b6,leftshoulder:b9,leftstick:b7,lefttrigger:a4,leftx:a0,lefty:a1,rightshoulder:b10,rightstick:b8,righttrigger:a5,rightx:a2,righty:a3,x:b2,y:b3,platform:android"
gamepad_test_mapping(index, mapping_string);
参数 | 类型 | 描述 |
---|---|---|
index | Real | 要设置哪个游戏手柄索引“插槽”。 |
mapping_string | String | 要使用的映射字符串(有关详细信息,请参阅描述)。 |
N/A
var mapping = gamepad_get_guid(global.padIndex) + "," + gamepad_get_description(global.padIndex);
var len = array_length(global.PadInstances);
for (i = 0; i < len; i += 2)
{
var left = global.PadInstances[i];
var right = global.PadInstances[i+1];
mapping += "," + left.sdlLabel + ":" + right.binding;
}
gamepad_test_mapping(global.padIndex, mapping);
上面的代码将遍历多个实例,并使用它们包含的不同变量的值来创建映射字符串,然后在给定的槽索引中设置该映射字符串以在游戏手柄上使用。