0

私はobj一時停止コントローラーを持っています。上/下矢印を使用してEnterキーを押し、一時停止メニューの何かをクリックすると、以前は機能していました。しかし、Enterキーの代わりにマウスの左クリック(タッチスクリーン)を使用するにはどうすればよいですか。このコードをエンターキーとして持っています。

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)){
   }
}
4

1 に答える 1

1

あなたのコードには、何かを機能させるために対処しなければならない多くの問題があります。

  1. Interest 変数の変更がチェックされますが、実際に変更された場所はありません (ステップ イベント スクリプトで変更されると予想されますが、何もしません)。
  2. draw gui スクリプトは、対象の 3 つの異なる値に対してまったく同じものを描画します。目に見える変化はありません。
  3. 新しい部屋にジャンプし、同時に (選択を解除するときに) 選択した関心を表示します。つまり、選択が表示されることはありません。a) プレス時に選択した対象を描画し、b) リリース時に部屋にジャンプする必要があります。

さらに、複数の指が同時に画面に触れる可能性があることに注意してください。5 本の可能性のある最初のタッチのみをチェックしています。

GameMaker コンテキストでの最後の提案は、オブジェクトを使用して、指のプレスとリリースのイベント (タッチ スクリーンではマウス イベントは指のイベントとして変換されます) をチェックすることです。インスタンスのスプライト領域の衝突を自動的にチェックするビルトイン ビヘイビアにより、GameMaker が非常に使いやすくなっています。

于 2014-07-17T12:37:29.690 に答える