Rückstoß im TopDownSpiel

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

  • Rückstoß im TopDownSpiel

    Hey Leute,
    ich habe ein arbeite derzeit an einem kleinen TopDown-Spiel. Um das Spielgefühl zu verbessern würde ich ganz gerne einen kleinen Rückstoß beim treffen eines Gegners einfügen.
    Theoretisch hatte ich bereits den Lösungsansatz, dass man einfach die direction-Variable negatiert(gibts das Wort? :D). Also wenn Projektil auf Gegner trifft wird oGegner.direction -= oProjektil.direction für einen ganz kurzen Moment gesetzt, sodass sich der Gegner kurz nach hinten bewegt. Ich weiß aber nicht ob das funktioniert und ob es bessere Methoden gibt.
    Falls ja, wär es nett wenn ihr mir diese dann vorstellen könntet. :D
  • Da dein Gegner bestimmt irgendeinen Code ausführt, der bestimmt dass er dem Spieler folgt oder so, würde ich folgendes vorschlagen:
    Du platzierst im Create-Event zwei neue Variablen, sagen wir mal

    GML-Quellcode

    1. //Im Create Event
    2. Angriff=1
    3. Rückstoßgeschwindigkeit= 0.1

    Jetzt platzierst du vor deinen gesamten bisherigen Code (im StepEvent oder was auchimmer du benutzt) ein

    GML-Quellcode

    1. if Angriff=1
    2. {
    3. DeinCode
    4. }


    Jetzt kannst du praktisch das Angreifen/automatische Laufen in Richtung Spieler abstellen. Wenn dein Gegner jetzt von oProjektil getroffen wird setzt du Angriff auf 0, damit der Gegner nicht direkt weiterläuft, oGegner.direction = oProjektil.direction und speed=oProjektil.speed.

    Jetzt musst du nurnoch im StepEvent mithilfe der "Rückstoßgeschwindigkeit"-variable einstellen, dass der Gegner nach dem Treffer wieder langsamer wird und dann beim Stillstand wieder 'Angriff' umschaltet, damit er den Spieler wieder folgt.

    GML-Quellcode

    1. //Im Step Event
    2. if Angriff=0 //von oProjektil getroffen/Rückstoß
    3. {
    4. speed-=Rückstoßgeschwindigkeit//speed wird um 0.1 pro Step verringert -> Gegner wird nach Treffer wieder langsamer
    5. if speed<=0 //wenn Stillstand erreicht ist/Rückstoß vorbei ist. Das < ist wichtig, falls die "Rückstoßgeschwindigkeit" so groß ist, dass nicht 0 sondern zBsp -1 rauskommt
    6. {
    7. Angriff=1
    8. }
    9. }




    Das ist zumindist meine grobe Vorstellung davon wies klappen könnte.

    MFG
    Falcfire
    Im Internet weiß niemand, dass du ein Truthahn bist.