Mit Joystick Message Box "OK" drücken

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Mit Joystick Message Box "OK" drücken

    Hallo,

    Normalerweise kann man die MessageBox ja nur per Mausklick auf OK,oder per Druck auf Enter wegmachen.
    Nun wollte ich mal wissen ob es irgendwie möglich ist,dies auch mit einem joystick/gamepad zu machen und selbst die Taste dafür festlegen zu können.
    Wenn dies geht,müsste es ja auch möglich sein,eine andere Taste anstatt Enter nutzen zu können.

    mfg,domi
  • Die einzige Möglichkeit wäre, dass du deine eigene Message Box programmierst. Hier ein simples Beispiel:

    Create Event:
    [gm6]
    background = background_create_from_screen(0,0,room_width,room_height,0,0,0);//das aktuelle Bild des Spiels in eine Variable speichern
    instance_deactivate_all(1)//Alle Instanzen außer dieses deaktivieren
    ButtonPressed=false//Variable, die zum Button drücken benutzt wird
    [/gm6]

    Draw Event:
    [gm6]
    draw_background(background,view_xview,view_yview)//Bild zeichnen
    draw_set_alpha(0.5)
    draw_set_color(c_black)
    draw_rectangle(0,0,room_width,room_height,false)//Bild verdunkeln
    draw_set_alpha(1)

    draw_sprite(spr_messagebox,0,view_xview+(view_wview/2),view_yview+(view_hview/2))//MessageBox wird gezeichnet; das Sprite muss sowohl vertikal als auch horizontal zentriert sein

    draw_set_halign(fa_center)
    draw_text(view_xview+(view_wview/2),view_yview+(view_hview/2)-64,"Hallo, ich bin eine Nachricht!")//Die Nachricht wird gezeichnet; Werte musst du anpassen
    draw_set_halign(fa_left)

    draw_sprite(spr_button,ButtonPressed,view_xview+(view_wview/2),view_yview+(view_hview/2)+64)//Der Button wird gezeichnet; muss horizontal zentriert sein; ImageIndex=0 = nicht gedrückt, ImageIndex=1 = gedrückt
    //Du kannst auch statt einem Button einfach wieder ein Text schreiben wie: "Drücke Button 1"
    [/gm6]

    Step Event:
    [gm6]
    if joystick_check_button(1,1)//Wenn Button 1 Gedrückt ist...
    {ButtonPressed=true}//setzt er die Variable "ButtonPressed" auf true
    else//Wenn der Button dann wieder losgelassen wird,...
    {
    if ButtonPressed=true
    {
    instance_activate_all()
    instance_destroy()//verschwindet die Message Box
    }
    }

    [/gm6]
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)
  • Gibts ne möglichkeit das ganze als Script so zu machen(also links im script ordner),dass ich es bei execute code,so aufrufen kann:

    z.B.:

    GML-Quellcode

    1. show_messagebox(textboxgrafik,x,y,"text",buttongrafik,x,y,joystick_button_zum_überspringen) // sollte noch was fehlen,hab ichs übersehen^^


    Wäre sowas in der art möglich ? (show_messagebox ist nur als beispiel)

    mfg,domi

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von derkimba ()

  • Spontan würde mir nur folgendes einfallen:
    Du brauchst trotzdem ein eigenes Objekt dafür.

    Script:
    [gm6]
    textboxgrafik=argument0
    text=argument1
    xx=argument2
    yy=argument3
    buttongrafik=argument4
    xx2=argument5
    yy2=argument6
    button=argument7

    if !variable_local_exists("background")
    {
    background = background_create_from_screen(0,0,room_width,room_height,0,0,0);//das aktuelle Bild des Spiels in eine Variable speichern
    instance_deactivate_all(1)//Alle Instanzen außer dieses deaktivieren
    ButtonPressed=false//Variable, die zum Button drücken benutzt wird
    }

    draw_background(background,view_xview,view_yview)//Bild zeichnen
    draw_set_alpha(0.5)
    draw_set_color(c_black)
    draw_rectangle(0,0,room_width,room_height,false)//Bild verdunkeln
    draw_set_alpha(1)

    draw_sprite(textboxgrafik,0,view_xview+(view_wview/2),view_yview+(view_hview/2))//MessageBox wird in der Mitte des Bilds gezeichnet; das Sprite muss sowohl vertikal als auch horizontal zentriert sein

    draw_set_halign(fa_center)
    draw_text(xx,yy,text)//Die Nachricht wird gezeichnet; Werte musst du anpassen
    draw_set_halign(fa_left)

    draw_sprite(buttongrafik,ButtonPressed,xx2,yy2)//Der Button wird gezeichnet; muss horizontal zentriert sein; ImageIndex=0 = nicht gedrückt, ImageIndex=1 = gedrückt
    //Du kannst auch statt einem Button einfach wieder ein Text schreiben wie: "Drücke Button 1"

    if joystick_check_button(1,button)//Wenn Button X Gedrückt ist...
    {ButtonPressed=true}//setzt er die Variable "ButtonPressed" auf true
    else//Wenn der Button dann wieder losgelassen wird,...
    {
    if ButtonPressed=true
    {
    instance_activate_all()
    instance_destroy()//verschwindet die Message Box
    }
    }
    [/gm6]

    Pack dann den Script ins Draw-Event:
    [gm6]show_messagebox(textboxgrafik,"text",x,y,buttongrafik,x,y,joystick_button_zum_überspringen)[/gm6]

    Allerdings weiß ich nicht, ob es so günstig ist alles im Draw-Event abzufragen. Eine andere Möglichkeit alles in einem Script zu regeln, gibt es meines Wissens nach nicht.
    Meine Spiele:
    - Mission A
    - Mission B
    - The Virus 1, 2, 3
    - The Virus 4: The Excision
    - Blur melts Snow
    - Blur melts Snow: 2nd Version
    - Cave Jumper

    Hauptrojekt: Party Mania(Arbeitstitel) - große Multiplayer-Minispielsammlung
    In Planung: Planet Jumper(Nachfolger von Cave Jumper)