Spiel hängt sich auf. Ohne Fehlermeldung.

  • GM 8

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

  • Spiel hängt sich auf. Ohne Fehlermeldung.

    Hi. Ich hab heute das neuste GM 8.1 update runtergeladen, noch ein bisschen was an meinem game verändert und jetzt hängt es sich biem Test (und auch in der exe) ständig einfach auf. Das komishe ist, dass keine Fehlermeldung kommt und der Absturz an ganz unterschiedlichen stellen das spiels auftritt. Der Bildschirm friert ein und dann keine rückmledung. Ich denke nicht, dass es an meinem Spiel liegt, ich meine an irgendeinem Fehler im code, dann würde ja eine Fehlermeldung kommen oder?
    Haben noch mehr Leute dieses Problem?

    ~
  • Vielleicht hast du ja eine Schleife programmiert, die nicht terminiert. Dann gibt es auch keine Fehlermeldung und das Spiel bleibt hängen. Schau mal am besten nach, was du zu letzt verändert hast und poste den Code hier.

    MfG

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.
  • Ich bin recht sicher, dass ich das nicht getan habe, alles was ich verändert hab, ist dass ich ein neues objekt erstellt habe und einen code, der schon länger im game drin ist hineinkopiert und angepast habe. wenn des interessiert, es ist dieser hier:

    GML-Quellcode

    1. if (reloaded == true) && (instance_exists(gegner_parent)) && (global.alive == true) && (instance_exists(i8_aim))
    2. {
    3. spreadangle = (global.shotammount*2)-2;
    4. repeat (global.shotammount)
    5. {
    6. ID = instance_create(self.x,self.y,global.shotkind);
    7. with (ID) motion_set((point_direction(self.x,self.y,i8_aim.x,i8_aim.y)+i8_rohr.spreadangle),geschwindigkeit);
    8. spreadangle -= 4;
    9. }
    10. alarm[0] = global.reloadtime;
    11. reloaded = false;
    12. }
    Alles anzeigen

    (jeweils die variablen noch im create-event erstellt.)
    Aber wie gesagt, der ist schon länger da und zickt nicht.
    ~
  • Höchst wahrscheinlich so, wie Trixt0r es sagt. Irgendwo im Code kommt es zu einer Endlosschleife (Hach wie wir sie lieben). Besonders anfällig dafür: while und do-until Loops. Check mal, falls du so etwas verwendest, ob die Abbruchbedingungen zutreffen können.

    © 2008 by Teamgrill Productions
  • Also ich hab den Code mal bei mir ausprobiert:

    GML-Quellcode

    1. ID = instance_create(self.x,self.y,global.shotkind);
    2. with (ID) motion_set((point_direction(self.x,self.y,i8_aim.x,i8_aim.y)+i8_rohr.spreadangle),geschwindigkeit);


    Ich habe den Code einmal im Create-Event eines Objektes ausgeführt, was dazu führt, dass das Spiel einfach abstürtzt. Dann hab ich den Code mal im Step-Event ausgeführt und da blieb es auch bei mir hängen. Ich habe das Gefühl das die Funktion motion_set() die Probleme verursacht.

    Edit: An .dll's oder am GM 8.1 kanns ja nicht liegen, da es beim GM 8 auch einfach hängen bleibt (ohne die Nutzung von Extensions).

    Edit 2: Ich habe mal

    Spoiler anzeigen

    GML-Quellcode

    1. motion_set((point_direction(self.x,self.y,i8_aim.x,i8_aim.y)+i8_rohr.spreadangle),geschwindigkeit);


    in

    Spoiler anzeigen

    GML-Quellcode

    1. motion_set((point_direction(self.x,self.y,other.x,other.y)+i8_rohr.spreadangle),geschwindigkeit);


    umgeschrieben, und da bleibt bei mir nix hängen. Es liegt wohl an deinem i8_aim-Objekt.

    MfG

    Albert Einstein schrieb:

    Probleme kann man niemals mit derselben Denkweise lösen, durch die sie entstanden sind.

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

  • gut. Das hier führt mein aim event aus (begin step). Es setzt sich selbst immer vor das dem player am nächhsten liegende gegner_parent-Objekt, abhängig von der geschwindigkeit das gegners und der des schusses, der in riochtung aim-objekt fliegt.
    Das ist mir ein bisschen peinlich, weil das alles bestimmt einfacher ginge...

    GML-Quellcode

    1. if instance_exists(gegner_parent) && (global.alive == true)
    2. {
    3. v = instance_nearest(Player.x,Player.y,gegner_parent).speed;
    4. j = instance_create(x,y,global.shotkind);
    5. s = instance_nearest(x,y,global.shotkind).geschwindigkeit;
    6. with (j) instance_destroy();
    7. with (gegner_parent)
    8. {
    9. if (unbesiegbar == true) {instance_deactivate_object(id);}
    10. }
    11. if (instance_exists(gegner_parent))
    12. {
    13. x = instance_nearest(Player.x,Player.y,gegner_parent).x + lengthdir_x((global.a/s)*v,instance_nearest(Player.x,Player.y,gegner_parent).direction);
    14. y = instance_nearest(Player.x,Player.y,gegner_parent).y + lengthdir_y((global.a/s)*v,instance_nearest(Player.x,Player.y,gegner_parent).direction);
    15. x = instance_nearest(Player.x,Player.y,gegner_parent).x + lengthdir_x((distance_to_object(Player)/s)*v,instance_nearest(Player.x,Player.y,gegner_parent).direction);
    16. y = instance_nearest(Player.x,Player.y,gegner_parent).y + lengthdir_y((distance_to_object(Player)/s)*v,instance_nearest(Player.x,Player.y,gegner_parent).direction);
    17. }
    18. instance_activate_all();
    19. }
    Alles anzeigen


    ... ~
  • Nur als Tipp:

    Du brauchst nur einmal

    GML-Quellcode

    1. obj=instance_nearest(Player.x,Player.y,gegner_parent)
    zu schreiben und kannst dann z.B.

    GML-Quellcode

    1. obj.x
    nutzen. Das macht den Code deutlich übersichtlicher.

    Aber ansonsten hab ich keine Fehlerquelle erkannt.
  • Benutzer online 1

    1 Besucher