Gegner soll bei bestimmten Aktionen sterben.

  • GM 8

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

  • Gegner soll bei bestimmten Aktionen sterben.

    Hallo,
    ich arbeite derzeit an einem kleinen Jump 'n' Run und bin nun auf folgendes Problem gestoßen.
    Als ich gerade die Gegner getestet habe, ist mir aufgefallen, dass die Hitbox sehr ungenau ist.
    Mein Code ist folgender:

    Quellcode

    1. y<other.y && vspeed>0

    Als Bild:

    Nun ist aber das Problem, dass sobald ich auch nur einen einzigen Milimeter vom Monster entfernt bin, sterbe ich sofort, was ich eigentlich vermeiden wollte.
    Eigentlich will ich beim berühren von der Seite sterben, aber sobald ich auf seinem Kopf lande, darf er das zeitliche segnen.
    Nun ist meine Frage, wie kann ich das so verbessern, wie ich es haben will?
    Ich muss dazu sagen, dass ich ein relativer Neuling im Game Maker bin, auch wenn ich mich bereits schon ein wenig eingearbeitet habe.

    mfg Rennteufel
  • vspeed muss kleiner als 0 sein wenn du von oben auf das monster fällst.

    Wenn hspeed <> als 0 und <> vspeed oder x = monster.x
    dann stirbt der spieler.

    das ganze entweder im step event (mit if place_meeting(x,y,obj_monster) oder im kollisionsevent mit dem Monster


    generell kannst du im sprite Editor einstellen das die Collisionmask precise ist statt quadratisch, dann hast du auch eine bessere Kollisionsabfrage.

    ich hoffe ich hab dein Problem richtig verstanden und Willkommen im Forum :)

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^
  • Aku_Ryou schrieb:

    vspeed muss kleiner als 0 sein wenn du von oben auf das monster fällst.

    Wenn hspeed <> als 0 und <> vspeed oder x = monster.x
    dann stirbt der spieler.

    das ganze entweder im step event (mit if place_meeting(x,y,obj_monster) oder im kollisionsevent mit dem Monster


    generell kannst du im sprite Editor einstellen das die Collisionmask precise ist statt quadratisch, dann hast du auch eine bessere Kollisionsabfrage.

    ich hoffe ich hab dein Problem richtig verstanden und Willkommen im Forum :)

    Vielen Dank, aber wenn ich eingebe:
    y<other.y && vspeed < 0
    Dann sterbe ich egal wo ich das Monster berühre.

    Ich habe das ganze jetzt mit dem Sprite Editor gemacht, zwar gefällt mir das ganze immer noch nicht, aber vorerst kann ich damit arbeiten :)
  • Ahh, schande, natürlich muss vspeed größer sein da du ja runter fällst. Aber da hat sich ja das Problem ergeben... hast du schon probiert nur eine der beiden Methoden zu benutzen, also entweder ist dein vspeed größer null wenn du runter fällst oder y < monster.y

    Und mir ist grade aufgefallen dass du den flaschen Codeblock benutzt; du brauchst test Variable nicht test expression.
    du muss fragen ob die variable y smaller than other.y ist und/bzw vspeed larger than 0

    btw benutzt du die lite oder die standart edition?

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^
  • Wäre es nicht möglich, das Problem hier genauso zu lösen, wie mein Spiegelproblem?

    Ich habe kurz testhalber ein Spiel erstellt, bei dem der Spieler bei Kollision mit dem Gegner einen Code auführt

    GML-Quellcode

    1. if direction = 225-315
    2. {
    3. object_delete(gegner)
    4. }
    5. else
    6. {
    7. object_delete(spieler)
    8. }


    Ich kann nicht testen, ob es geht, da ich keine Pro Edition(für obj_delete) habe, aber teoretisch müsste der Code so funktionieren. Syntaxfehler treten keine auf.
    Im Internet weiß niemand, dass du ein Truthahn bist.
  • Das ginge schon, aber dann müsste er wahrscheinlich seinen ganzen Bewegungscode umschreiben. Ich nehme nicht an dass er sich mit speed und direction bewegt sondern nur mit vspeed und hspeed bei gleichbleibender direction.

    Die Direction dann noch dazuzuschreiben wäre schon ein möglichkeit, er könnte auch variablen haben
    var_links & var_rechts --> Spieler Tod
    var_sprung --> Monster Tod

    aber es sollte auch so gehen mit einer Überprüfung der Koordinaten bzw des vspeed.


    Wenn nicht wäre die gmk mal hilfreich zum ansehen.

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^
  • @Falcfire:

    GML-Quellcode

    1. if direction = 225-315 // direction == -90
    2. {
    3. object_delete(gegner)
    4. }
    5. else
    6. {
    7. object_delete(spieler)
    8. }



    object_delete macht wahrscheinlich nicht das was du willst, unterscheide zwischen Objekte (object_delete) und Instanzen (instance_destroy). Objekte ist was du im Game Maker erstellst (mit den Sprites, Events, etc..) und Instanzen sind die Abilder von der Objekten (das was du in den Raum setzt), jede Instanze hat eine eigene ID (id). Um alle Instancen von einem Objekt zu löschen nutze with mit instance_destroy.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Aku_Ryou schrieb:

    Ahh, schande, natürlich muss vspeed größer sein da du ja runter fällst. Aber da hat sich ja das Problem ergeben... hast du schon probiert nur eine der beiden Methoden zu benutzen, also entweder ist dein vspeed größer null wenn du runter fällst oder y < monster.y

    Und mir ist grade aufgefallen dass du den flaschen Codeblock benutzt; du brauchst test Variable nicht test expression.
    du muss fragen ob die variable y smaller than other.y ist und/bzw vspeed larger than 0

    btw benutzt du die lite oder die standart edition?


    Ich benutze die Lite Version, habe aber vor, mir demnächst die Pro Version zu kaufen.

    Mir ist aufgefallen, dass ich die Probleme nur habe, wenn zwei Gegner übereinander sind.
  • hmm...also es wäre gut wenn du mal deine gmk hier als anhang hochladen würdest dann können wir mal genau reinschauen wo das Problem liegt. Wenn s bei einem Gegner funktioniert und du kommst von oben auf zwei von denen runter dann muss es auch gehen. Es gibt sicherlich eine ganz simple Lösung dafür.

    out now: KNOSSOS auf itch.io
    ancient-pixel.com <<< ich freue mich über einen Besuch! ^^