Pathfinding im Gelände (Berg, Wasser, Schlamm,Straße)

  • GM 8

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

  • Pathfinding im Gelände (Berg, Wasser, Schlamm,Straße)

    Hallo,

    ich hab folgendes Problem. Ich möchte gerne im Spiel Straßen, Schlamm oder Wasser einführen (als Gelände). Mein Objekt soll jetzt wenn ich Ihm sage er soll zu einem bestimmten Ort laufen den Weg nehmen, der am besten und nicht am aufwendigsten ist, also Wasser,Schlamm etc nicht als verboten ansehen solange es kein besseren Weg zum Ziel gibt oder eher die Straße nutzen als den begrasten Boden. Derweil habe ich es nur über die Funktionen von GM geschafft, dass er Objekte als Hindernis sieht (Wand) und umläuft.
    Gibt es eine Möglichkeit mit den Motion Planning Funktionen so etwas zu programmieren und wenn ja wie? Wenn nicht weis jemand wie ich das auf andere Wege realisieren kann ?
  • Also ich hätte es mit Paths gemacht...

    Du legst alle wege als Paths Fest... und wenn dann der Zeitpunkt kommt an dem er dem Pfad folgen soll
    machst du einfach einen neuen Path punkt dort wo du gerade bist und setzt diesen dazwischen... zu mindest habe ich es so gelöst...

    Aber wenn ich es mal so sehe wirkt meine Methode doch eher umständlich...

    Und ich glaube ich bin nichtmal halb soweit wie du denn ich weiß nicht wie man es macht das er Objekte umfährt xD

    Probiers mal irgendwie mit den Paths dafür sind die ja eigentlich da... ;)

    MFG PHIl
  • Vorweg. Ich antworte hier vom handy.

    Deine methode kannst du weiter hin nutzen. Ich denke mal das ist die steptoward oder
    in gml gesprochen die mp_potential_step() funktion.
    Also mit der du einen defineirten instancen typ um läufst.
    Wie zb Wände.
    Die frage ist doch erst mal, wie weist du denn welcher weg gut oder schlecht
    ist. Also oa gras oder schlamm im weg ist. Und was ist in deinem fall
    der bessere weg.
    Etwa der schnellste?

    Aber wenn ich das richtg lese hast du dir schon selber geantwortet.

    Mein tip. Nutze die funkitin mp_grid_path zum pbtrüfen ob ein weg gefunden wir.
    Bei dem auch schlamm und wasser als hinderniss gesehen wird.
    Zb if mp_grid_path(x,y.weg,speed,ojekt)=true then
    {
    Path_start()
    }
    Wenn nicht noch mal prüfen ohne das wasser und schlamm.
    Du kannst die path funtion auch nur zum prüfen nutzen und dann mit mp_potentional_step weiter
    machen da die gridpath funtion wie auf schienen
    Fährt und wenig natülich aussiehtund du lannst aucj die weg lämge mit path get length jeraus finden.

    Wichtig ist das en path im gamemaker mit 1 punkt erstelt wurd.
    An der seite in dem ordner. Zb path_01
    und du dann in jeden objekt was einen weg nutzen soll im creat event sagst
    way=path_duplicate(path_01)
    Und diese variable dann nutzt.
    Sonst versuchen alle gleichen objecte denn selben path zu nutzen und zu
    bearbeiten.
    Meine Signatur hat kein Visum für das GM Forum erhalten.