2 Objekte gleichzeitig geklickt

  • GM 7

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

  • 2 Objekte gleichzeitig geklickt

    Hallo

    ich bin am Ende mit den Nerven :heul: bitte helft mir.



    Wie auf dem Bild zu sehen ist habe ich 2 Objekte. Ein rotes und ein gelbes.
    Je nachdem auf welches Objekt man klickt soll eine Messagebox kommen (Rot geklickt oder Gelb geklickt).

    Wenn ich aber auf das gelbe Objekt klicke kommt erst die Message rot geklickt und dann gelb geklickt obwohl ich ja rot garnicht geklickt habe. Was kann ich dagegen tun?

    problem.zip


    Danke
  • Da ich aus deinem profil nicht entnehmen kann wie gut du dich mim gm auskennst kann ich wegen des beitrags nur schätzen und hoffe das stichwort Depth hilft dir:
    Einfach beim Klickne anchecken welches die niedriger depth hat (höher) ud dann naja... oder das rote rechteck zu einem rechteck ring machen (okay das wort gibts nicht)
  • So ist schon mal ganz klar. Das ist das normal verhalten des Gamemakers. Der Gm kann doch nicht wissen welches er zu erst machen soll. Wo her soll er wissen das wenn in der mitte das Gelbe ist, ernicht das Rote anklicken soll. Du mustden Computer nicht nur bei bringen was er machen solll. sondern auch das was er nicht machen soll.

    ICh vermute auserdem das die Rot Message zuerst kommt weil du das Rote objekt als erstes erstelleet hast, und somit eine kleiner ID im speicher hat. Denn nach dieser reinfilge werden alle objeke nach ein ander berchnent.

    Dafür gibts einen kleinen tip. Schneide einfach beim Roten Viereck, genau das Gelbe vier eck aus und mach es in der mitte Transparten. Somit ist nur noch der Rote Bereich anklickbar.
    Meine Signatur hat kein Visum für das GM Forum erhalten.
  • x-sascha schrieb:

    Dafür gibts einen kleinen tip. Schneide einfach beim Roten Viereck, genau das Gelbe vier eck aus und mach es in der mitte Transparten. Somit ist nur noch der Rote Bereich anklickbar.
    Eigentich ist das eine gute Idee aber für mein Spiel nicht möglich.
    Ich arbeite grade an einer Schießbude wie man sie vom Jahrmarkt kennt.

    Es laufen verschiedene Objekte hin und her die man wegballern muss.
    Wenn man nicht trifft soll in der Wand ein Einschussloch kommen und wenn man ein Ziel trifft soll natürlich kein einschuss in der Wand dahinter zu sehen sein.

    Deswegen muss ich wissen wie ich bei dem oben genannten Beispiel es so mache das wenn ich gelb klicke auch nur das klick Event vom gelben Objekt ausgeführt wird.
  • X-sascha hat ganz recht, es gibt aber noch eine möglichkeit:

    Mach den Raum neu und achte dabei darauf dass du zuerst die Ziel-Scheiben plazierst und dann den Hintergrund.
    EDIT(oh, dachte die Reihenfolge ist von der ID im Raum abhängig und nicht vom Index, D.h. du musst die Objekte löschen. Denke es reicht wenn du die Hintergrund-Objekte löscht und neu erstellt (bzw. einfach duplizierst))

    Jetzt gibt es noch die Funktion mouse_clear(), damit wird der Status einer Mouse-taste sofort auf 0 gesetzt.
    das heist wenn diese ausgeführt wird ist es so als ob die Maus nicht mehr gedrückt wäre.
    Schreib in die left-presssed events der Scheiben: mouse_clear(mb_left)
    Dies sorgt dafür dass das Event der Hintergrund-Objekten nicht mehr ausgeführt wird.

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

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

  • ich würde das so machen,

    im geschoss objekt

    GML-Quellcode

    1. if (place_meeting(obj_rot)) and !(place_meeting(obj_gelb{
    2. //dein code für rotgeklickt
    3. }
    4. if(place_meeting(obj_gelb)){
    5. //dein code für gelb geklickt
    6. ]


    theoretisch sollte das funktionieren :)

    edit;
    oder du machst das ins maus objekt,

    dann musst du hinter der if anweisung nurnoch "(mouse_check(mb_left))" schreiben


  • Ich glaube er benutzt kein Geschoss-Objekt, außerdem müssen bei den meeting-Funktionen die Koordinaten angegeben werden.
    Dieser code im Step ist aber deutlich einfacher als mein vorheriger Post.

    GML-Quellcode

    1. if position_meeting(mouse_x,mouse_y,obj_rot)
    2. if position_meeting(mouse_x,mouse_y,obj_gelb)
    3. {
    4. //dein code für gelb geklickt
    5. }
    6. else
    7. {
    8. // code für rot
    9. }

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

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

  • Guten Morgen

    erstmal danke für eure Antworten. Ich hatte irgendwie ein Denkfehler bei der Planung meiner Schießbude.
    Ich war der meinung ich müsste die Wand hinter den Objekten die man abschiessen muss ebenfalls als objekt machen um dort ein Einschussloch zu plazieren wenn man nicht trifft.

    Das war natürlich falsch. Ich habe die Wand einfach als Raum Hintergrund gemacht und folgendenden Code verwendet um zu prüfen ob ich getroffen habe oder nicht.

    GML-Quellcode

    1. if (position_empty(mouse_x,mouse_y)){
    2. sound_play(snd_shootFail);
    3. instance_create(mouse_x,mouse_y,obj_hole);
    4. } else {
    5. sound_play(snd_shootHit);
    6. // blaaa blaaa
    7. }


    Für alle die neugierig sind wie die Bude aussieht hier ein Screen.

    Die Bude hab ich mit Paint gezeichnet sieht zwar nicht besonders toll aus aber das Spiel wird Spass bringen wenns fertig ist. :P