Gegner/Boss verschwindn aus dem Raum

  • GM 8

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

  • Gegner/Boss verschwindn aus dem Raum

    Hallo zusammen,

    habe ein erneutes Problem beim Programmieren meines ersten Spiels. Das Problem was ich habe bezieht sich sowohl auf meinen Boss, wie auch auf einen bestimmten Gegner, den ich angefertigt habe, daher beschreibe ich einfach mal das Problem, welches beim normalen Gegner auftritt. Ich habe ihn so erstellt, in der Art wie Thwomp aus Super Mario. Der dicke Steinklotz, der in der Luft schwebt und wartet, bis Mario unter ihm ist und dann sofort nach unten fällt, um ihn zu zerquetschen. Anschließend schwebt er wieder zu seiner Ausgangspostion zurück. Genau in dieser Vorgegehensweise habe ich auch meinen Gegner erstellt. Alles funktioniert wunderbar. Spieler nähert sich und sobald man unter ihm ist, fälltt er schnell hinunter und bewegt sich dann langsam wieder nach oben. Nun hält mein Gegner aber nicht wie gewünscht an seiner Ausgangsposition an, sondern verschwindet einfach nach oben aus dem Raum. Im Creat Event habe ich ihm gesagt, dass xstart = x und ystart = y ist und im Step Event: move_towards_point (xstart, ystart, 3). Das Selbe betrifft auch meinen Boss, der auch nach seiner ersten Attacke nach oben aus dem Raum abhaut, anstatt den vorgegebenen Pfad erneut von seiner Ausgangsposition zu starten. Das komische daran ist, dass ich schon einen Gegner habe, der in der Luft wartet, bis man sich ihm in einem bestimmten Radius nähert und der dann auf einen zufliegt. Hängt man diesen ab, fliegt er wieder zu seiner Ausgangsposition zurück. Bei diesem klappt es komischerweise mit dem selben Befehl. Kann das ein Fehler in der Software sein, oder was mach ich bei dem einen Gegner richtig und bei dem anderen plötzlich falsch? Ich möchte einfach nur, dass er wieder anhält, wenn er laut Code bei seiner Ausgangsposition ist.

    Danke im Voraus
  • mach doch

    GML-Quellcode

    1. if !position_meeting(xstart,ystart,id)
    2. move_towards_point (xstart, ystart, 3)
    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
  • husi012 schrieb:

    if !position_meeting(xstart,ystart,id)
    move_towards_point (xstart, ystart, 3)



    Klappt leider auch nicht. Jeder von denen geht ja immer zu seiner Ausgangspostion, bleibt dann aber nicht stehen sondern läuft geradeaus weiter. Leider auch mit diesem Code. Wie gesagt bei einem anderen Gegner klappt es wunderbar und da habe ich nichts anderes gemacht. Daher meine Verwirrtheit
  • Michaelp800 schrieb:

    Wayne zeig' mal den Code. :D


    Create Event:

    xstart = x
    ystart = y
    gravi = 0
    Timer = false
    Geschwindigkeit = 8
    Dauer = 0
    aufwaerts = 15

    Step Event:

    if place_free (x,y+1)
    gravity = gravi
    else
    gravity = 0

    script1()

    Script1:

    if (Timer = false && y = ystart)
    if (point_distance(Spieler.x, 0, x, 0)<32 && Spieler.y>y)
    {
    gravi = 2
    vspeed = 3
    sprite_index = sprite123
    }

    if (Timer = true)
    {
    Geschwindigkeit+=1

    if (Geschwindigkeit=Dauer)
    {
    Geschwindigkeit = 0
    gravi = 0
    sprite_index = sprite122
    Timer = false
    move_towards_point (xstart, ystart, 3)
    }

    }


    Kollision mit Boden:
    move_contact_solid(direction,32)
    vspeed = 0

    if (y<other.y && Timer = false)
    Timer = true
  • Michaelp800 schrieb:

    Am besten, du lässt sie einfach nicht aus dem Raum gehen. Wenn sie zu nahe an die Raumenden kommen, sollen sie umkehren.


    Gehen die dann nicht automatisch hoch und runter? wollte ja, dass sie anhalten und sobald der spieler erneut drunter steht, sie wieder runter fallen. das würde ja dann nicht mehr funktionieren oder?
  • D.Wayne schrieb:

    Michaelp800 schrieb:

    Gib eine feste X und Y Position beim Start an (z.b. X = 100, Y = 50).
    Nicht x und y. Diese sind nur relativ zur aktuellen Position.


    jetzt bewegt er sich schräg nach oben und verschwindet, obwohl die ausgewählte Position genau über ihm ist

    Hm, lies mal die PN, die ich dir geschickt habe. ;)