【问题标题】:Game Maker Studio 2 - How to give one input priority over another when controlling the same object?Game Maker Studio 2 - 如何在控制同一个对象时赋予一个输入优先于另一个输入?
【发布时间】:2020-01-22 08:36:23
【问题描述】:

我正在尝试在游戏中控制一个瞄准对象,我从两个不同的输入开始,一个是左摇杆,这样你可以在移动时瞄准,一个是右摇杆,可以更精确地瞄准,但我做起来有困难,所以我可以用左摇杆控制它,同时用右摇杆移动。

我已经尝试重新排序代码并设置一个变量来检查左摇杆是否在使用中,但这些都不起作用。

if abs(controllerhr) > 0.2 or abs(controllervr) > 0.2{
controllerangle = point_direction(0,0,controllerhr,controllervr)
}
if gamepad_button_check_pressed(0,gp_face3) or gamepad_button_check_pressed(0,gp_shoulderrb) and firingdelay < 0 and ammo > 0{
firingdelay = 4;
ammo -= 1;
oPlayer.hsp-= lengthdir_x(playerrecoil,image_angle);
oPlayer.vsp-= lengthdir_y(playerrecoil,image_angle);
with instance_create_layer(x,y,"Kunai",oKunai){
speed = 15;
direction = other.image_angle;
image_angle = direction;
}
image_angle = controllerangle
}
}



if oPlayer.controller==1 and inuse==0{
if abs(controllerh) > 0.2 or abs(controllerv) > 0.2{
controllerangle = point_direction(0,0,controllerh,controllerv)
}
image_angle = controllerangle
}

附:缩进正确 粘贴时缩进搞砸了。

谢谢!

【问题讨论】:

  • 我可能需要对所使用的变量进行一些解释,然后才能回答。 controllerhrcontrollervrcontrollerhcontrollervinuse 是什么意思?
  • @Steven 控制器 h、v 和它们的 r 变体是这些轴在各自平面上的旋转,我找到解决方案的任何方式,由于某种原因,右摇杆上的射击动作它按顺序跳过或其他东西,所以如果进入左摇杆则移动拍摄。 inuse 也是一个我忘记删除的变量,它用于测试正确的stickn是否在使用中。
  • 好的。很高兴听到您找到了解决方案。您可以将您的解决方案发布为答案并将其标记为已解决,这可以帮助未来的访问者。

标签: gml game-maker-language game-maker-studio-2


【解决方案1】:

我找到了一个解决方案,由于某种原因,射击控制器跳过了代码或弄乱了顺序或其他东西,所以将射击代码移动到左摇杆改变了顺序并修复了它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-30
    • 1970-01-01
    相关资源
    最近更新 更多