global.auswahl ist immer -4... wo liegt der fehler???

  • GM 8
  • global.auswahl ist immer -4... wo liegt der fehler???

    hi leute, ich versuche eine instanz zu aktivieren durch draufklicken. aber schon beim starten des spiels, ist die variable global.auswahl=-4

    im create event der maus hab ich
    global.auswahl=noone;
    dann im step event der objekte

    GML-Quellcode

    1. if(mouse_check_button(mb_left))and(place_meeting(mouse_x,mouse_y,self)){
    2. global.auswahl=id;
    3. }
    4. if(mouse_check_button(mb_left))and!(place_meeting(mouse_x,mouse_y,self)){
    5. global.auswahl=noone;
    6. }
    7. if(id=global.auswahl)and(mouse_check_button_pressed(mb_right)){
    8. x=mouse_x;
    9. y=mouse_y;
    10. }


    ich versteh nicht warum global.auswahl immer -4 ist, zumal diese -4 nirgendswo zugewiesen werden :S....

    gruß gruen


  • noone ist -4.
    #edit:

    erklär doch mal bitte welchen Wert die Variable noone hat?
    Ich hoffe du meinst nicht none.
    noone ist eine Festgelegte Variable vom Game Maker und diese beträgt -4.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

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

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

  • Damit sollts gehen:

    GML-Quellcode

    1. if(mouse_check_button(mb_left))and(position_meeting(mouse_x,mouse_y,id)){
    2. global.auswahl=id;
    3. }
    4. if(mouse_check_button(mb_left))and!(position_meeting(mouse_x,mouse_y,id)){
    5. global.auswahl=none;
    6. }
    7. if(id=global.auswahl)and(mouse_check_button_pressed(mb_right)){
    8. x=mouse_x;
    9. y=mouse_y;
    10. }


    Beachte, dass dein Objekt ein Sprite haben muss , da sonst position_meeting(...); nicht funktioniert.

    MfG xxskxx
    -
  • mach doch mal einfach n show_message("yeeh") dort wo die variable gesetzt werden sollte(also beim anklicken)...
    vl statt self id nehmen?
    "das war meine letzte flamewar PM an dich ."
  • Dann mach ein Script namens scr_hover:

    GML-Quellcode

    1. if (mouse_x>=x) and (mouse_y>=y) and (mouse_y<=y+sprite_height) and (mouse_x<=x+sprite_width)
    2. {return 1;}
    3. return 0;

    Das sollte gehen.

    GML-Quellcode

    1. if(mouse_check_button(mb_left))and(scr_hover()){
    2. global.auswahl=id;
    3. }
    4. if(mouse_check_button(mb_left))and!(scr_hover()){
    5. global.auswahl=none;
    6. }
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • GML-Quellcode

    1. if(mouse_check_button(mb_left))and(place_meeting(mouse_x,mouse_y,self)){
    2. global.auswahl=id;
    3. show_message("yeeeeh its working");
    4. }

    Kommt jemals eine Meldung?
    Evtl hat ja dein Objekt einfach kein Sprite oder sowas.
    "das war meine letzte flamewar PM an dich ."
  • öhm 8| wisst ihr was passiert?... wenn ich einfach noch drunter schreibe
    show_message("yeeeeh its working");
    dann funktioniert das, dann wird auch die id zugewiesen.
    wenn ich das dann wieder rauslösche funktioniert das wieder nicht o.O... irgendwie suspeckt... woran liegt das?


    edit: jetz sach doch ma einer warum :P... ich will ja nicht immer ne meldung bekommen damit die id zugewiesen wird...


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

  • Hi leute, ich hab ein bsichen herum gedocktert, und mir is eines aufgefallen.
    ich hab ja geschrieben.

    GML-Quellcode

    1. if(position_meeting(mouse_x,mouse_y,self))and(mouse_check_button_pressed(mb_left)){
    2. global.auswahl=id;
    3. hanz=1;
    4. }
    5. else if(mouse_check_button_pressed(mb_left)){
    6. global.auswahl=0;
    7. hanz=0;
    8. }
    9. if(id=global.auswahl){
    10. if(mouse_check_button_pressed(mb_right)){
    11. x=mouse_x;
    12. y=mouse_y;
    13. }
    14. }
    Alles anzeigen


    wenn ich jetzt den teil mit

    GML-Quellcode

    1. else if(mouse_check_button_pressed(mb_left)){
    2. global.auswahl=0;
    3. hanz=0;
    4. }

    rauslösche, dann wird eine id zugewiesen.
    die hanz variable ist einfach nur ein test(und ja hans wird mit s geschrieben xD)
    bei der hanz variable funktionierte das auf 1 setzen auch nur solange wie ich des letzte rausgelöscht hatte. aber auch nur an einer instanz, wenn ich eine andere instanz des selben objektes angeklickt hatte wurde hanz nicht auf 1 gesetzt warum auch immer-.-...

    ich hab jetzt keine ahnung wie ich das abwählen hinbekommen soll, weil ja die id iwie nicht zugewiesen wird...
    und das mit der hanz variable ist nicht so wichtig, aber das irritiert mich, ich weiß nicht warum des so is


  • Sowas ähnliches hatt eich auch mal. Wenn ich da so ne Meldung hatte funktionierte das ganze, sonst nicht.
    Habs am Ende umgangen aber Ohne das Problem rauszufinden. Egal.
    Poste mal hier die GMK oder eine von nur der fehler drinn ist.
    Sonnst kommen wir eher nicht weiter.



    EDIT: häää? Grad ist etwas seltsames passiert. In deinem Post stand grad eben irgendwie nur "test..".
    Äh ich les mal den neuen Post.

    EditEdit: egal, der Post oben gilt xD

    EDIT³:

    ähm dein Code ist etwas selstam.
    erstens wir der zweite Abschnitt niemals ausgeführt weil im Ersten Teil schon der Mausknopf abgefragt wird...
    Glaube dass solte etwa so aussehen:

    GML-Quellcode

    1. if(position_meeting(mouse_x,mouse_y,self)){
    2. if(mouse_check_button_pressed(mb_left)){
    3. global.auswahl=id;
    4. hanz=1;
    5. }
    6. }
    7. else if(mouse_check_button_pressed(mb_left)){
    8. global.auswahl=0;
    9. hanz=0;
    10. }
    11. if(id=global.auswahl){
    12. if(mouse_check_button_pressed(mb_right)){
    13. x=mouse_x;
    14. y=mouse_y;
    15. }
    16. }
    Alles anzeigen

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

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

  • ich hatte so viele verschiedene variationen des codes, keiner hatte funktioniert :(... deiner funktioniert übrigends auch nicht, selbe ergebnis wie beschrieben....hanz funktioniert nur bei der ersten instanz der objekte und id wird nicht zugewiesen :S

    und was ist eine GMK??? is des die datei? ich poste des einfach mal dabei...

    edit:
    wie gehabt, wenn ich

    else if(mouse_check_button_pressed(mb_left)){
    global.auswahl=0;
    hanz=0;
    }

    raus lösche, dann wird die id zugewiesen.... das ergibt doch keinen sinn -.-

    edit2:
    schreibe ich

    GML-Quellcode

    1. if(position_meeting(mouse_x,mouse_y,self)){
    2. hanz=1;
    3. if(mouse_check_button_pressed(mb_left)){
    4. global.auswahl=id;
    5. }
    6. }
    7. else if(mouse_check_button_pressed(mb_left)){
    8. global.auswahl=noone;
    9. }
    10. if!(position_meeting(mouse_x,mouse_y,self)){
    11. hanz=0;
    12. }
    13. if(id=global.auswahl){
    14. if(mouse_check_button_pressed(mb_right)){
    15. x=mouse_x;
    16. y=mouse_y;
    17. }
    18. }
    Alles anzeigen

    dann wird der wert beim klicken auf -4 gesetzt. das heißt trotz kollision wird die else anweisung durchgeführt. aber wie gesagt findet ja eine kollision statt :S...
    in diesem code jetzt hab ich die hanz-variable verwendet um zu testen ob es eine kolision gibt, und es gibt eine, also ist es absolut unlogisch das der gm den else befehl durchführt...

    edit3: mir ist gerade aufgefallen, das die hanz variable die jetzt nur die kollision messen sollte nur bei der ersten instanz auf eins gesetzt wird, bei den anderen passiert das nicht. aber die id wird nichtmal bei der ersten instanz zugewiesen.
    Dateien


    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von Gruen ()

  • Oh lol. Die sache kann so nicht funktionieren!
    Die variable ist global und du hast ein Dutzend anderer Instanzen...
    D.h im Step wenn Auswahl auf die ID gesetzt wird wird es gleichzeitig von den Anderen Objecten wieder auf null gesetzt...

    Du musst die variable normal lassen und sie zum Beispiel "ausgewählt" nennen.
    Die wird dann entweder auf 0 oder auf 1 gesetzt.
    Und wenn diese auf 1 ist wird die Instanz bewegt.
    wenn ein anderes Object angeklickt wird kannst du dann mit

    with(obj_weiß) ausgewählt = 0;

    alle anderen abwählen.

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

    Die variable ist global und du hast ein Dutzend anderer Instanzen...
    D.h im Step wenn Auswahl auf die ID gesetzt wird wird es gleichzeitig von den Anderen Objecten wieder auf null gesetzt...
    hmm ja das klingt logisch. soweit hab ich garnicht gedacht o.O.

    DragonGamer schrieb:

    Du musst die variable normal lassen und sie zum Beispiel "ausgewählt" nennen.
    Die wird dann entweder auf 0 oder auf 1 gesetzt.
    Und wenn diese auf 1 ist wird die Instanz bewegt.
    Wenn ich die variable auf 0 oder 1 setze, dann wähle ich ja garkeine instanz damit aus. woher soll die instanz dann wissen das sie gemeint ist?
    theoretisch müsste ich doch die variable ausgewählt=id; setzen oder nicht?


  • ich glaub ich habe verstanden was du meintest. demnach müsste der code ungefair so aussehen...

    GML-Quellcode

    1. if(position_meeting(mouse_x,mouse_y,self)){
    2. ausgewaehlt=1;
    3. }
    4. with(self){
    5. ausgewaehlt=0;
    6. }
    7. if(ausgewaehlt=1){
    8. if(mouse_check_button_pressed(mb_right)){
    9. x=mouse_x;
    10. y=mouse_y;
    11. }
    12. }
    Alles anzeigen

    leider funktioniert des nicht :(


  • Ich meinte eher sowas:

    GML-Quellcode

    1. if mouse_check_button(mb_left);
    2. {
    3. if(position_meeting(mouse_x,mouse_y,self))
    4. {
    5. ausgewaehlt=1;
    6. }
    7. else
    8. {
    9. ausgewaehlt=0;
    10. }
    11. }
    12. if(ausgewaehlt=1)
    13. if(mouse_check_button_pressed(mb_right)){
    14. x=mouse_x;
    15. y=mouse_y;
    16. }
    Alles anzeigen

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • woar das ist doch nciht möglich 8| das hat funktioniert 8|

    im grunde ist das ein ziehmlich einfacher code. hätte nicht gedacht des des klappt.

    aber die with funktion war diesmal nicht dabei (aus deinem forigen post :P ) aber nicht schlimm.

    vielen dank. gruß gruen


  • Benutzer online 1

    1 Besucher