Code bei Mausklick nur für ein Objekt ausführen

  • Code bei Mausklick nur für ein Objekt ausführen

    Hallo,

    Ich habe folgenden Code für ein Objekt im Step Event

    GML-Quellcode

    1. if(mouse_check_button_pressed(mb_right))
    2. {
    3. Select = show_menu("Info|Buy|Sell|Choise1|Choise2|Help|Cancel",0);
    4. if(Select == 0) {exit;}
    5. if(Select == 1) {global.rat=true;}
    6. if(Select == 2) {global.rat=false;}
    7. if(Select == 3) {exit;}
    8. if(Select == 4) {exit;}
    9. if(Select == 5) {exit;}
    10. if(Select == 6) {exit;}
    11. }
    Alles anzeigen


    Wobei die ganzen Exit-Optionen hier nur Platzhalter sind.

    Mein Problem ist folgendes->Das Objekt checkt ja die ganze Zeit ob ich rechts anklcike...also ich kann irgendwo dieses menü öffnen...Das möchte ich nicht. ich möchte, dass ich, wenn ich z.B Objekt#01 rechtsklicke, dass dann ein Menü mit eben diesen Codeattributen erscheint und wenn ich Objekt#02 anklicke , dass dann ebenfalls das passiert.
    Denn wenn ich den Code so stehen lasse, wird immer nur Objekt#01 zu diesem Menü bezogen.

    Mfg,Vielen Dank im Vorraus :P,
    Euer Punish0r
  • ___________________________________________
    FATAL ERROR in
    action number 1
    of Mouse Event for Right Pressed
    for object obj_DNA_snake:

    COMPILATION ERROR in code action
    Error in code at line 2:
    {

    at position 2: Variable name expected.
  • Der Code lautet also nun so:

    GML-Quellcode

    1. switch(mouse_check_button_pressed(mb_right))
    2. {
    3. Select = show_menu("Info|Buy|Sell|Choise1|Choise2|Help|Cancel",0);
    4. if(Select == 0) {exit;}
    5. if(Select == 1) {global.snake=true;}
    6. if(Select == 2) {global.snake=false;}
    7. if(Select == 3) {exit;}
    8. if(Select == 4) {exit;}
    9. if(Select == 5) {exit;}
    10. if(Select == 6) {exit;}
    11. }
    Alles anzeigen


    Wenn ich auf das Objekt nun rechtsklicke im rightPressed event passiert nüchts :I....warum?

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

  • Total Falsch.
    Richtig:

    GML-Quellcode

    1. Select = show_menu("Info|Buy|Sell|Choise1|Choise2|Help|Cancel",0);
    2. switch (select)
    3. {
    4. case 0:
    5. exit;
    6. break;
    7. case 1:
    8. exit;
    9. break;
    10. case 2:
    11. exit
    12. break;
    13. case 3:
    14. exit
    15. break;
    16. case 4:
    17. exit
    18. break;
    19. case 5:
    20. exit
    21. break
    22. case 6:
    23. exit
    24. break;
    25. }
    Alles anzeigen

    gm-d.de/help/hh_start.htm?401_13_switch.html
    MfG Henrik1235
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%

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

  • Ich hab jetzt soviel Zeit vertan, dass andere schneller waren.

    Benutze aber bei switch aber auch geschweifte Klammern wie Superdaniel geschrieben hat, das ist meines Wissens nach allgemeiner Standard.

    Ansonsten:
    Ein Event ist oft nichts anderes als eine Bedingung, die erfüllt sein muss, damit Code ausgeführt wird. In sofern ersetzt es auch dein If.
  • ->TOTAL VERWIRRT!<-

    HÄ???

    Henrik->dein Code funzt nicht, da fehlt ne Menge :D!!!

    GML-Quellcode

    1. select = show_menu("Info|Buy|Sell|Choise1|Choise2|Help|Cancel",0);
    2. switch (select)
    3. {
    4. case 0:exit;
    5. case 1:global.snake=true;break;
    6. case 2:global.snake=false;break;
    7. case 3:exit;
    8. case 4:exit;
    9. case 5:exit;
    10. case 6:exit;
    11. }
    Alles anzeigen


    Da passiert auch nix -__-
  • Okay...nun bin ich platt...es lag nicht am Code...es lag daran,dass ich für das Objekt kein Sprite angegeben habe *WUT*...Ich hatte das Bild extern drawen lassen,hat er nicht genommen...jetzt bin ich sauer....keine Ahnung warum, aber wenn ich n Sprite angebe macht er gewünschte Funktion.

    Code: (RightPressed)>

    GML-Quellcode

    1. select = show_menu("Info|Buy|Sell|Choise1|Choise2|Help|Cancel",0);
    2. switch (select)
    3. {
    4. case 0:exit;
    5. case 1:global.snake=true;break;
    6. case 2:global.snake=false;break;
    7. case 3:exit;
    8. case 4:exit;
    9. case 5:exit;
    10. case 6:exit;
    11. }
    Alles anzeigen


    Funktioniert...Blödheit siegt->Danke MewX :)

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

  • Leute!

    Postet doch keine Codes, die völlig falsch sind. Einen Code kann man ganz schnell testen indem man seinen Game Maker öffnet. Wenn Euch das zuviel Mühe ist, laßt es doch einfach sein. Sonst ist damit glaub ich niemand geholfen, sondern wie man sieht verwirrt es nur.

    Und was sollen die überflüssigen Abfragen:

    GML-Quellcode

    1. case 0:exit;
    2. case 3:exit;
    3. case 4:exit;
    4. case 5:exit;
    5. case 6:exit;


    Und wenn überhaupt, dann "break;"

    Ist letztendlich egal, ich will ja nicht kleinlich sein. Aber wer hat denn mit "korrekter Verwendung von Switch-Statements" angefangen?

    ^^GRINS^^
  • Benutzer online 1

    1 Besucher