Bot sichtfeld und reagieren

  • Allgemein

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

  • Bot sichtfeld und reagieren

    Hi,
    Ich hab mich heute mal an ein Bot system versucht, bin aber leider beim
    Sichtfeld und bei der raktion gescheitert.
    Ich habe das ganze mit collision_line versucht, aber es wollte nicht so klappen wie ich es wollte.

    Kennt jemand eine bessere Methode ? Google konnte mir auch nicht weiterhelfen, da ich nicht
    weiß wie das ganze system heißt ^^
    Es sollte natürlich nicht durch wände gehe, das ist glaube ich die größte Schwierigkeit.

    Hab noch ein Bild dazu
    Bilder
    • bot.png

      11,99 kB, 566×395, 352 mal angesehen
  • collision_line wäre ja nur ein strich und collision_circle auch nur ein kreis ohne innen...
    so wäre es meiner meinung nach am besten

    GML-Quellcode

    1. if place_meeting(lengthdir_x(radius,obj_player),lengthdir_y(radius,obj_player),obj_player)
    2. //er ist im radius
    Ein Bug ist mehr als nur ein Bug, es ist ein... Käfer!
    Egal, wie gut du eine Mauer baust, sie fällt um.... der klügere gibt nach :D

    Willst du mit mir auf Discord Chatten/Quatschen?
    Meine Husi's Tutorial Reihe
  • Was laberst du eigentlichl Husi? xD Entweder ist das Bullshit oder ich bin zu dumm um dich zu duchblicken.
    Oder hab die frage falsch verstanden

    Nein Nico,
    du musst zuerstmal testen ob er im Radius ist. Das sichtfeld ist ja nich 360°, was das ganze bisschen trickey macht.
    Aber du kannst ja zuerst testen ob er überhaupt im radius ist, mit point_distance.
    Wenn das true ist dann kannst du testen ob er im Sichtkegel ist, indem du z.b. testest ob der (winkel zwischen dem winkel in dem der bot guckt und der winkel zum spieler) <(Sichtkegelwinkel/2) ist. oder so ähnlich (ist bisschen trickey da ja der winkel wenn er unter 0 kommt dann plötzlich als 359 oder so interpretiert wird und das sorgt für chaos, lässt sich aber rausrechnen, ich mach da mal eben ein schmutziges example, mit gm8.1 wenns ok is? sollte sich aber nix ändern)
    Und wenn das auch true ist, dann kannst du noch teste ob eine kollision stattfindet zwischen dem gegner und dem spieler.
    Mit collision_line.
    Falls nein, dann ist das sichtfeld frei und der Gegner sieht den Spieler.

    :)

    Example befindet sich weiter unten:
    |
    |
    \/
    Sorm ist Schuld

    Edit: Doch ist er

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

  • Okay, wenn du meinst^^
    Ich hab jetzt aber schon angefangen und es ist gar nich mal soo simpel ;)
    Wenn ichs hinkrieg das alles supi läuft lad ichs trotzdem mal hoch

    -pac

    Edit: So, habs jetzt hinbekommen indem ich ein Skript geschrieben habe welches den Winkel zwischen zwei anderen Winkeln berechnen kann. Sehr praktisches Skript dass ich bestimmt auch noch in anderen Projekten gebrauchen werde^^
    Kann auch sein dass es noch nich perfekt ist, aber es scheint erstmal zu funktionieren :)
    Dateien
    Sorm ist Schuld

    Edit: Doch ist er

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Pacmangamer ()