游戏制作者暂停菜单点击

时间:2014-06-27 03:15:27

标签: android game-maker

我有一个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)){
   }
}

1 个答案:

答案 0 :(得分:1)

我发现您的代码存在许多问题,您需要解决这些问题才能解决所有问题:

  1. 检查您的兴趣变量是否有变化,但实际上没有变化(我希望它会在您的步骤事件脚本中更改,但它不会做任何事情)。
  2. 你的绘制gui脚本为三个不同的兴趣值绘制完全相同的东西。没有任何明显的变化。
  3. 您跳转到一个新房间并同时显示所选兴趣(当发布选择时),这意味着您永远不会看到选择。你应该a)在出版时抽取选定的兴趣,b)在发布时跳到房间。
  4. 此外,请记住,不止一个手指可以同时触摸屏幕 - 您只需检查第一次触摸可能有5个。

    GameMaker上下文中的最后一个建议是使用对象来检查手指按压和释放事件(鼠标事件在触摸屏上转换为手指事件)而不是扫描屏幕区域以进行按压。这是使GameMaker更容易使用的原因,因为它会自动检查实例的精灵区域是否存在碰撞,这是一种内置行为。