InGame Menü Problem

  • InGame Menü Problem

    Hi zusammen!

    Also ich habe folgendes Problem:
    Bei meinem J&R Spiel kann man per "m"-Taste ein kleines Menü öffnen, was dann links im Fenster angezeigt wird.
    Dort stehen kleine Informationen, da sind aber auch buttons wie z.B. "Level Beenden" vorhanden.
    Wenn ich jetzt das Menü geöffnet habe und mit dem Player weiter gehe, verdoppeln sich die buttons einmal und schweben daneben her...

    Ich will es hinbekommen, dass die Objekte ohne markel mit dem view mitgehen...

    Hier ein Screeshot:


    Und hier die Objektinformationen:
    Spoiler anzeigen
    Create Event:
    set variable global.MenuSichtbar to "nein"
    set variable global.menuknopf to "Start"

    Step Event:
    if global.MenuSichtbar is equal to "ja"
    create instance of object obj_Menu_B-Start_button at position (view_xview+6,view_yview+80)
    create instance of object obj_Menu_B-Shop_button at position (view_xview+56,view_yview+80)
    create instance of object obj_Menu_B-Home_button at position (view_xview+106,view_yview+80)
    create instance of object obj_Menu_B-Schließen at position (view_xview+144,view_yview+44)
    else
    for all obj_Menu_B-Start_button: destroy the instance
    for all obj_Menu_B-Shop_button: destroy the instance
    for all obj_Menu_B-Home_button: destroy the instance
    for all obj_Menu_B-Schließen: destroy the instance

    Draw Event:
    if global.MenuSichtbar is equal to "ja"
    if global.menuknopf is equal to "Start"
    at position (view_xview-1,view_yview+36) draw image -1 of sprite Menu_B-Start
    else
    if global.menuknopf is equal to "Home"
    at position (view_xview-1,view_yview+36) draw image -1 of sprite Menu_B-Home
    if global.menuknopf is equal to "Shop"
    at position (view_xview-1,view_yview+36) draw image -1 of sprite Menu_B-Shop
    if global.menuknopf is equal to "Start"
    at position (view_xview-1,view_yview+36) draw image -1 of sprite Menu_B-Start

    Key Press Event for M-key Key:
    if global.MenuSichtbar is equal to "ja"
    set variable global.MenuSichtbar to "nein"
    else
    set variable global.MenuSichtbar to "ja"
    set variable global.menuknopf to "Start"

    ____
    Adventskalender 2010: Blue Smiley

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

  • Gimero schrieb:

    Step Event:
    if global.MenuSichtbar is equal to "ja"
    create instance of object obj_Menu_B-Start_button at position (view_xview+6,view_yview+80)
    create instance of object obj_Menu_B-Shop_button at position (view_xview+56,view_yview+80)
    create instance of object obj_Menu_B-Home_button at position (view_xview+106,view_yview+80)
    create instance of object obj_Menu_B-Schließen at position (view_xview+144,view_yview+44)
    else
    for all obj_Menu_B-Start_button: destroy the instance
    for all obj_Menu_B-Shop_button: destroy the instance
    for all obj_Menu_B-Home_button: destroy the instance
    for all obj_Menu_B-Schließen: destroy the instance


    Das ist komplett falsch...
    Du erstellst jeden Step diese Objekte...

    Du sollst die einmalig erstellen.
    Und die sollen dann dem View folgen.
    Also etwa so:

    GML-Quellcode

    1. instance_create(6,80,obj_menu_B_Close);
    2. // Name geändert weil es sonst Errors verursacht
    3. // Kannst ja auch D&D nehmen

    Und End Step Event des Objektes:

    GML-Quellcode

    1. x = view_xview[0]+xstart;
    2. y = view_yview[0]+ystart;

    (End Step deshalb weil sich der View nach dem Step Event noch bewegen kann.
    Wenn du es selbst sehen willst dann probiers mal im Step Event ;) )

    So bewegt sich dein Objekt immer (von der Start-Position aus gesehen (in dem Fall 6, 80) ) mit dem View mit.
    Ich denke mal das sollte funktionieren - ich habs nicht getestet ;D
  • Na in das Event wo du das Menü erstellst,
    und wie doch schon richtig geraten hast im "Knopf-Objekt". *EDIT
    (Hättest es aber auch ausprobieren bzw. die D&D Aktionen nehmen können :P )

    EDIT: Nein zum Teufel - ich meinte ins M-Key Event -.- :rolleyes: sry

    Außerdem hab ich geschrieben "des Objekts", eigentlich musst du das in alle Menü Objekte tun (sollte aber klar sein ^^ ).
    (Ja manche tun sich da so schwer... :D )
  • Sorry wegen Doppelpost!
    Wenn man den Code:

    GML-Quellcode

    1. x = view_xview[0]+xstart;
    2. y = view_yview[0]+ystart;
    in den End-Step oder Step - Event packt, macht das keinen Unterschied, die Knöpfe wackelten trotzdem. Naja ich hatte mich da immer so durchgemogelt, dass ich auf dem Sprite-Menü die Knöpfe schon draufgemalt hatte und die wackelnden Knopf-Objekte einfach unsichtbar gemacht habe... Da ich jetzt mich an ein Inventar begebe, und die einzelnen "Inventar-Slots" aus einzelnen Objekten bestehen, die auch dem View folgen, kann ich die Items ja im Inventar nicht einfach unsichtbar lassen. Die wackeln nämlich auch.
    Naja damit bleibt die Frage wieder offen, wie ich das Wackeln weg bekomme und ein flüssiges Folgen der Knöpfe zum View bekomme.
    Ich hoffe auf Anworten :)

    ____
    Adventskalender 2010: Blue Smiley
  • Ich hoffe, ich verstehe dich richtig...
    Wenn ja, mach das ins Draw Event:

    GML-Quellcode

    1. draw_sprite(sprite_index, image_index, view_xview[0]+xstart, view_yview[0]+ystart);

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von fabse64 ()

  • Jo, dann tu' deinen obigen Code halt noch dazu...

    GML-Quellcode

    1. x = view_xview[0]+xstart;
    2. y = view_yview[0]+ystart; // Lässt das Objekt dem View folgen
    3. draw_sprite(sprite_index, image_index, view_xview[0]+xstart, view_yview[0]+ystart); // Damit das Objekt nicht mehr ruckelt
  • Alles klar, hab

    GML-Quellcode

    1. x = view_xview[0]+xstart
    2. y = view_yview[0]+ystart;
    ins step-event getan und

    GML-Quellcode

    1. draw_sprite(sprite_index, image_index, view_xview[0]+xstart, view_yview[0]+ystart);
    ins draw-event und es klappt :D
    Vielen, vielen dank :)

    ____
    Adventskalender 2010: Blue Smiley
  • Benutzer online 2

    2 Besucher