Problem mit Gegner Kollision

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

  • Problem mit Gegner Kollision

    Hallo
    Ich hab Game Maker noch nicht so lange und hab ein kleines Jump and run game vor.
    Jetzt hab ich einen Gegner gemacht und möchte dass wenn ich ihn seitlich berühre dass ich ein Leben verliere. Aber wenn ich draufspring dann soll er zerstört werden.

    ich habs mit dem code hier versucht

    im collisonsevent von meinem Männchen

    GML-Quellcode

    1. if y>Gegner.y { health-=10}


    und beim Gegner dann

    im collisionsevekt

    GML-Quellcode

    1. if y>Mario.y { instance_destroy() }


    der gegner wird zwar zerstört. Aber ich hab keine ahnung wie ich es machen soll dass es mir Lebensenergie abzieht und noch ein wenig zurückwirft.

    Mfg Incendium
  • Vielleicht mit speed, friction und gravity?
    Es kommt immer darauf an wie du dein Spiel aufgebaut hast.

    Dein Code ist nicht ganz richtig. Angenomen du springst von unten in den Gegner, bist aber zufällig über ihn, wird es trotzdem zerstört. Außerdem wird das ganze nicht funken, wen du mehrere Gegner hast, also so:

    GML-Quellcode

    1. if (y<other.y) && (vspeed>0) { .... }

    Und beim gegner:

    GML-Quellcode

    1. if (y>other.y) && (other.vspeed>0) { ... }
  • jop jetzt klappts mit dem draufspringen.
    Aber das männchen ist größer als der gegner.
    Und ich möchte wenn ich reinlaufe in ihn dass ich ein leben verlier.
    so wies jetzt ist da kann ich durch ihn durchlaufen.
    aber wenn ich draufspring wird er zerstört.
    kann mir da jemand helfen?

    mfg Inc
  • Oder arbeite doch mit Variablen. Wenn du den "Sprung-Knopf" drückst, soll die variable (z.B. "jump") auf 1. Und sobald dein Spielerobjekt wieder auf dem Boden landet, ist die Variable jump = 0. Somit kannst du sagen: "Wenn jump == 1 und Kollision mit Gegner, dann zerstöre Gegner - ansonsten (wenn variable = 0) Spieler-Leben -= 1". Das würde sicher gehen. robiers einfach mal.

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

  • @Michaelp800:
    So einfach ist das leider nicht.
    Man kann ja z.B. springen und trotzdem seitwärts gegen den Gegner stossen.
    Oder wenn man Plattformen hat, die von unten durchlässig sind, dann kann man auch von unten gegen Gegner springen.

    @Incendium:
    Du benutzt jetzt den Code von CopyBoy, oder?
    Dann musst du bei der Figur in seinem CollisionEvent nur noch einen ELSE-Block hinter dem vorhandenen IF-Block anfügen, und da drin dann den Lebensverlust behandeln.

    Also

    GML-Quellcode

    1. if (...)
    2. {
    3. ...
    4. }
    5. else
    6. {
    7. // Hier den Lebensverlust behandeln
    8. }