S: Nach erneutem Erstellen funktioniert nichts...

  • GM 8

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

  • S: Nach erneutem Erstellen funktioniert nichts...

    Hallo liebe Community,

    ich habe folgendes Problem und bin mir ziemlich sicher, dass ich diesmal nicht selbst auf eine Lösung komme... :(


    Ich erstelle mit Hilfe eines Controller-Objekts in einem Raum zunächst 8 Objekte, mit denen man durch Linksklick interagieren kann und die dann bewirken, dass alle bisher erstellten Objekte (Controller und alle 8 Auswahlobjekte) zerstört werden. Außerdem wird dann ein weiteres Controller-Objekt erstellt, was aber mit dem ersten nichts zu tun hat....

    Im weiteren Verlauf des Raums, kann man zum Anfang des Raums zurückkehren. Dies habe ich jedoch nicht mittels room_restart gemacht, sondern quasi wieder alle Objekte zerstört und den ersten Controller im Raum wieder erstellen. Außerdem alle geänderten Variablen wieder auf Ausgangswert, sodass man nur "quasi" zum Anfang des Raumes zurückkehrt. (Hatte es zunächst mit room_restart() gemacht, da hats aber den gleichen Fehler gegeben.)

    Jetzt ist auf jeden das Problem, dass beim ersten Mal alle 8 Auswahl-Objekte einwandfrei funktionieren. Aber wenn sie dann erneut (mit anderer ID) erstellt werden, klappt keine Interaktion mit Linksklick mehr. Die Objekte sind einfach nur Schaltflächen ohne Sprite, vorhanden sind sie laut Debug-Mode aber....

    Ich denke mal Code erübrigt sich, da ja alles einmal einwandfrei funktioniert.... sollte also eigentlich nichts mit dem Code zu tun haben....


    Vielleicht hat einer von euch ne Idee, der noch dazu durch mein Gefasel da oben durchgestiegen ist ;)


    Gruß, Moe
  • Es gibt 2 Objekte: obj_spieleranzahl (ControllerObjekt) und obj_button (Auswahlmöglichkeit)
    Hier mal die wichtigen Events der beiden Objekte:

    Im Create-Event des obj_spieleranzahl wird einfach nur alarm[0] gesetzt, damit die Interaktionmöglichkeit nach erstellen des Raums bzw. des Objektes verzögert wird.

    Spoiler anzeigen
    im Alarm[0]-Event des Controllers: (Alarm[0], weil Eingabemöhlichkeit zeitlich verzögert werden soll!)

    GML-Quellcode

    1. a = 1; // Ist für's einfaden der Schrift wichtig (siehe Step-Event)
    2. alarm[0] = -1; // is klar
    3. instance_create(411,530,obj_button); // erstellt die 8 Schaltflächen.... dazu gleich mehr!
    4. instance_create(471,530,obj_button);
    5. instance_create(532,530,obj_button);
    6. instance_create(593,530,obj_button);
    7. instance_create(653,530,obj_button);
    8. instance_create(713,530,obj_button);
    9. instance_create(773,530,obj_button);
    10. instance_create(832,530,obj_button);


    Spoiler anzeigen
    Step-Event obj_spieleranzahl

    GML-Quellcode

    1. if a = 1 && image_alpha < 1 {image_alpha += 0.025;} // einfaden
    2. else if a = 1 && image_alpha >= 1 {a = 9;} // einfaden fertig
    3. if a = 2 && image_alpha >= 0 {image_alpha -= 0.025;} // ausfaden
    4. else if a = 2 && image_alpha <= 0 // ausfaden fertig
    5. {
    6. instance_create(0, 0, obj_controller_auswahl_ermittler); // nächstes Controllerobjekt erstellen
    7. a = 9;
    8. instance_destroy(); // Selbstzerstörung
    9. }


    Spoiler anzeigen
    obj_button Create stellt einfach nur die verschiedenen Images ein (wichtig für die Auswahl der Spieleranzahl!

    GML-Quellcode

    1. {
    2. image_speed = 0;
    3. if x < 450
    4. {
    5. image_index = 0;
    6. }
    7. else if x < 510
    8. {
    9. image_index = 1;
    10. }
    11. else if x < 570
    12. {
    13. image_index = 2;
    14. }
    15. else if x < 630
    16. {
    17. image_index = 3;
    18. }
    19. else if x < 690
    20. {
    21. image_index = 4;
    22. }
    23. else if x < 750
    24. {
    25. image_index = 5;
    26. }
    27. else if x < 810
    28. {
    29. image_index = 6;
    30. }
    31. else if x < 870
    32. {
    33. image_index = 7;
    34. }
    35. }
    Alles anzeigen


    Spoiler anzeigen
    Linksklickevent obj_button

    GML-Quellcode

    1. global.pl_anzahl = image_index + 1; // Legt Spieleranzahl fest
    2. obj_spieleranzahl.a = 2; // ausfaden einleiten
    3. with(obj_button) {instance_destroy();} // selbstzerstörung aller Buttons



    Ich hoffe, damit kann jemand was anfangen.... Ich versteh nicht, warum es nicht wieder funktioniert, wenns einmal funktioniert hat.... :(

    Danke schonmal, Gruß Moe
  • Ok, das mit dem Links release hat auch nichts gebracht, aber mein Problem hab ich doch lösen können...

    An alle die es interessiert, es hatte doch tatsächlich was mit dem Draw-Event zu tun.... in einem anderen Draw-Event wird nämlich draw_set_valign() verändert... so hab ich dann immer wieder, wenn ich auf die Zahl geklickt habe einige Pixel zu weit oben geklickt.... ist mir dann vorhin beim Wilddrauflosklicken aufgefallen, dass es plötzlich seinen ganz normalen Lauf ging... dann hab ich mal die x-/y-Koordinaten der Schrift geprüft, dann war alles klar :)


    Trotzdem vielen Dank an alle, die sich Gedanken gemacht haben :D

    und Thema kann geschlossen werden.


    Gruß, Moe

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