我有一个obj暂停控制器。它曾经在使用向上/向下箭头时工作,然后输入以在暂停菜单中单击某些内容。但我究竟如何使用鼠标左键单击(触摸屏)而不是输入键。我将此代码作为输入密钥。
if (interest == "resume")
{
instance_destroy();
}
else if (interest == "levels")
{
room_goto(worlds);
}
else if (interest == "main_menu")
{
room_goto(main);
}
这是我画的gui
draw_sprite(background, 0, 640, 360);
draw_sprite(spr_border, 0, 640, 360);
if (interest == "resume")
{
draw_sprite(spr_resume, 0, 640, 360 - 100);
draw_sprite(spr_levels, 0, 640, 360);
draw_sprite(spr_main_menu, 0, 640, 360 + 100);
}
else if (interest == "levels")
{
draw_sprite(spr_resume, 0, 640, 360 - 100);
draw_sprite(spr_levels, 0, 640, 360);
draw_sprite(spr_main_menu, 0, 640, 360 + 100);
}
else if (interest == "main_menu")
{
draw_sprite(spr_resume, 0, 640, 360 - 100);
draw_sprite(spr_levels, 0, 640, 360);
draw_sprite(spr_main_menu, 0, 640, 360 + 100);
}
我尝试在我的步骤事件中使用它来使点击(触摸)工作但它根本不工作(触摸或点击时没有激活)。这是对的吗?
if(device_mouse_check_button_released(0, mb_left)){
if (device_mouse_x(0) > 640 && device_mouse_x(0) < 640 + sprite_get_width(spr_resume)
&& device_mouse_y(0) > 260 && device_mouse_y(0) < 260 + sprite_get_height(spr_resume)){
//RESUME IS TOUCHED
}
}
if(device_mouse_check_button_released(0, mb_left)){
if (device_mouse_x(0) > 640 && device_mouse_x(0) < 640 + sprite_get_width(spr_levels)
&& device_mouse_y(0) > 260 && device_mouse_y(0) < 260 + sprite_get_height(spr_levels)){
}
}
if(device_mouse_check_button_released(0, mb_left)){
if (device_mouse_x(0) > 640 && device_mouse_x(0) < 640 + sprite_get_width(spr_main_menu)
&& device_mouse_y(0) > 260 && device_mouse_y(0) < 260 + sprite_get_height(spr_main_menu)){
}
}
答案 0 :(得分:1)
我发现您的代码存在许多问题,您需要解决这些问题才能解决所有问题:
此外,请记住,不止一个手指可以同时触摸屏幕 - 您只需检查第一次触摸可能有5个。
GameMaker上下文中的最后一个建议是使用对象来检查手指按压和释放事件(鼠标事件在触摸屏上转换为手指事件)而不是扫描屏幕区域以进行按压。这是使GameMaker更容易使用的原因,因为它会自动检查实例的精灵区域是否存在碰撞,这是一种内置行为。