我已经为自定义键映射创建了一个控制室。我有一个想法 - 如果键被分配给多个控件,那么它会显示为红色。但它只是部分起作用。
生成代码:
with(instance_create(64,64,obj_button_key)) {
mytext="UP: ";
myKEY=global.keyUP;
mytype=1;
}
with(...
scr_keymap_conflict(argument0):
var ii;
ii = 0;
if (argument0 == global.keyUP) ii+=1;
if (argument0 == global.keyDOWN) ii+=1;
if (argument0 == global.keyLEFT) ii+=1;
if (argument0 == global.keyRIGHT) ii+=1;
if (argument0 == global.keySPRINT) ii+=1;
if (argument0 == global.keyCROUCH) ii+=1;
if (argument0 == global.keyGRENADE) ii+=1;
if (argument0 == global.keyACTION) ii+=1;
if (argument0 == global.keyCHAT) ii+=1;
if (argument0 == global.keyMELEE) ii+=1;
if (argument0 == global.keyDROP) ii+=1;
if (ii > 1) {
return true;
}
画:
if (active) {draw_set_color(c_yellow)}
else if (scr_keymap_conflict(myKEY)) {draw_set_color(c_red)}
else draw_set_color(c_gray);
...
提供无效信息似乎有问题scr_keymap_conflict(argument0)
,所以有些按钮会变红,但有些不会,例如,如果有两个vk_space
控件,那么第一个会变红,但第二个不会(我有一个感觉draw_set_color
是在随机时刻覆盖单独的对象)。无论如何,global.key...
保留 ASCII 实数值(键盘快捷键)。active
在这种情况下mytype
并不重要。有人知道如何解决这个问题吗?