Schwierige Wegfindung und Gegnerverhalten

  • GM 7

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

  • Schwierige Wegfindung und Gegnerverhalten

    Hallo zusammen!

    An dem Problem fummel ich nun schon seit zwei Wochen herum. Zwischenzeitlich dachte ich, ich hätte es gelöst, aber je nach Situation kommt es immer wieder zu Problemen. Bevor ich los lege, sollten sich Interessenten mal das Spiel downloaden: - Datei wurde vom Server gelöscht -

    Es geht um das Objekt obj_chu_hund, welches ab Level 16 auftaucht. Wer das Spiel testen will, kann auch mit + und - auf dem Num-Block durch blättern.

    Was die Figur machen soll

    Wenn der Spieler nicht in der Nähe ist (>448 Pixel) oder der Weg verbaut, soll sie einfach im Kreis laufen. Also beginnend nach rechts bis zur ersten Wand, dann nach unten usw. immer im Uhrzeigersinn. So weit geht es.

    Wenn der Spieler in der Nähe ist UND es einen Weg zu ihm gibt, soll die Figur den Pfad finden und hin laufen. Auch das funktioniert gut. Nun aber zum Problem:

    Wenn der Spieler außerhalb der Reichweite ist ODER der Weg verbaut wurde (in Level 16 kann man das schön testen) soll die Figur zum Startpunkt zurück (geht manchmal) und dann den normalen Weg auf nehmen. Je nach Spielsituation funktioniert es, meistens aber nicht. Ich habe jetzt schon mehr als 60 Versuche unternommen, weshalb der Code auch sehr chaotisch geraten ist. Es wäre echt super, wenn mir dabei jemand helfen könnte. :thumbsup:

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

  • Auch wenn ich es selber nicht mag, wenn Themen hoch geschoben werden, bei diesem Problem ist es mir zu wichtig um es zu lassen. Die aktuellste Version habe ich eben auf meinen Server geschmissen, wobei es sich hierbei nur um ein paar grafische Verbesserungen handelt. Am Problem hat sich nichts geändert. Mal funktioniert es perfekt, mal ist es totaler Schrott und ich komme nicht dahinter, warum.

    Ich bitte dringend um Hilfe!
  • Ich wollte es mir mal anschauen. Da ich nur GM6 Pro hab, hab ich für dein Spiel den GM7 Lite versucht. Hier kam allerding beim Starten nur ein graues Bild. Und auf ESC hin kommt die Frage, ob ich das Spiel verlassen will, woraufhin mein "Ja" gnadenlos ignoriert wird. Zudem hat es meine Auflösung dauerhaft verändert...

    Sollte es dir möglich sein, eine in GM6 startende Version zu stellen, kann ich es mir gerne einmal anschauen.
  • das ist extrem kompliziert da etwas rauszulesen,
    da du schon soviel hast....
    wenns wirklich nur um dieses problem geht mach doch ein example mit dem nötigsten, denn dann ist es einfacher nachzuvollziehen
    .
    .
    .
    übrigens das sprite von dem gegner, um den es geht (lvl16), finde ich beeindruckend
    selbstgemacht?
  • @BadToxic: Ich habe leider nur GM 7, wüsste nicht wie ich es in GM6 verwandeln sollte.

    @Eumi: Na ja, im Prinzip ist alles, was den Gegner betrifft auch in diesem Objekt. Lediglich das Gitter wird in obj_spielkontrolle im Step erzeugt:

    GML-Quellcode

    1. mp_grid_clear_all(global.Netz);
    2. mp_grid_add_instances(global.Netz,obj_buschhell_einzeln,false);
    3. mp_grid_add_instances(global.Netz,obj_buschdunkel_einzeln,false);
    4. mp_grid_add_instances(global.Netz,obj_exit,false);
    5. mp_grid_add_instances(global.Netz,obj_felsen,false);
    6. mp_grid_add_instances(global.Netz,obj_loch,false);
    7. mp_grid_add_instances(global.Netz,obj_block,false);
    8. mp_grid_add_instances(global.Netz,obj_brocken,false);


    Der Rest steht in obj_chu_hund. Selbst wenn ich alles weitere, außer dem Pospos natürlich, raus schmeißen würde, wäre der eigentliche Code des Problems gleich komplex. :whistling:
  • Hab's geschafft! Im Nachhinein war es sogar recht einfach. Es gab zwei Fehler.

    1.) Einmal vergessen eine Variable zu setzen.
    2.) Eines der Probleme war, dass die Figur zwar zum Startpunkt zurück gelaufen ist, von da aus aber nicht immer los laufen wollte. Das entstand, weil ich nicht wusste, dass man auch abfragen kann, ob er den Pfad beendet hat. Statt dessen habe ich if x=xstart and y=ystart. Richtig ist aber if path_position=1. Jetzt passt alles perfekt.

    Wenn jemand so etwas selber mal plant... ich wünsche euch viel Spaß dabei, aber lasst mich bitte in Ruhe damit. Bin froh das es jetzt funktioniert. :P