Wer knallt gegen wen?

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

  • Wer knallt gegen wen?

    Wie kann der GM rausfinden, welches object gegen das andere geknallt ist, wenn sich 2 Objekte berühren?

    z.B.: Wenn Objekt 1 gegen Objekt 2 knallt erleidet Objekt 2 Schaden.
    Wenn Objekt 2 gegen Objekt 1 knallt erleidet Objekt 1 Schaden.

    Wenn ich das über ein collusions event mache erleiden immer beide Schaden!
  • Frage ist ersteinmal, wer für die Kollision verantwortlich ist...
    Woran bestimmt man das am besten?
    Mal kurz überlegen: Das klingt alles sehr nach Demolution Derby, und da kann normalerweise nur der schnellere dem langsamen reinfahren. er könnte sich auch in den Weg stellen, aber dann wäre auch er der hauptsächlich Leidtragende.
    Demzufolge könnte man es einfach mit dem speed regeln.

    Du schreibst einfach in beide(!) Kollosionsevents:
    [PHP]
    <Restlicher Kollisionskram>
    if speed > other.speed then // Wenn eigener speed kleiner
    <energievariable -= <EnergieVerlust>;
    [/PHP]
    Natürlich könnte man mit "energie -= abs(other.speed-speed)*Basisschaden;" arbeiten, dann fällt der Schaden umso größer aus, wenn die Geschwindigkeitsdifferenz größer ist. Kommt außerdem besser ^^.
  • Bist du sicher, das das für beide ein Event auslöst?

    Ich glaube nicht, nur es wird getestet, ob das objekt, das du gerade hast, gegen das andere stößt!

    Ist aber nicht möglich, weil es kann ja sein, das beide objekte sich auf einander zu bewegen! deshalb ist deine Möglichkeit auch nicht funktionierend, Mewx
    8)
    Game Maker - Recomer
  • edit: Da ist mir Windapple dazwischengechossen ^^

    Äh, nein und doch.
    Beide Kollisionsevents werdne ausgeführt. Der Game Maker führt alle Bewegungen aus, und schaut dann nach, wo Überscheidungens sind. Für diese Objekte werden anschließend die Kollisionsevents ausgeführt.
    Das war Punkt 1.

    Punkt 2:
    Wenn auf der Straße zwei Autos gegeneinaderfahren, dann kriegen beie ne Delle. Wenn ein Auto gegen ein parkendes fährt, kriegen auch BEIDE ne Delle.
    TrunX will aber unterscheiden, wer eher Opfer und wer eher Täter ist, und da eignet sich ein Vergleich der Geschwindigkeiten nunmal besser. :P

    Allerdings sollte man noch um speed und other.speed jeweils "abs(...)" ergänzen, damit, wenn die Autos rückwärtsfahren, auch das rückwärtsfahrende schneller sein kann und daher als "Sieger hervorgeht".
  • Ihr geht an die sache ganz falsch ran...

    Nur die Speed zu nehmen ist falsch, da es sein kann, dass der eine ja garnicht wirklich dem anderen mit seinem Speed reinfährt.
    Es kann genauso sein, dass sich das schnellere wegbewegt, als die kollision geschieht...

    Man sollte die direction für täter/opfer nehmen und speed eventuell für schaden...

    falls ein collisionsevent ausgelöst wird, wird geguckt, welches der objekte mehr zu dem anderen gerichtet ist, damit kann man rückschliessen, wer wohl eher mit absicht reingefahren ist. Der jenige mit Absicht macht dann aben mehr schaden, was man noch mit dem Speed in verbindung bringen könnte...
  • Original von Gnaf
    Ihr geht an die sache ganz falsch ran...

    Nur die Speed zu nehmen ist falsch, da es sein kann, dass der eine ja garnicht wirklich dem anderen mit seinem Speed reinfährt.
    Es kann genauso sein, dass sich das schnellere wegbewegt, als die kollision geschieht...

    Man sollte die direction für täter/opfer nehmen und speed eventuell für schaden...

    falls ein collisionsevent ausgelöst wird, wird geguckt, welches der objekte mehr zu dem anderen gerichtet ist, damit kann man rückschliessen, wer wohl eher mit absicht reingefahren ist. Der jenige mit Absicht macht dann aben mehr schaden, was man noch mit dem Speed in verbindung bringen könnte...


    wenn man speed als schaden nimmt würden beide ja gleich vile schaden
    erleiden. (speed + speed = aufprallgeschwindigkeit)
    Das wäre blöd, weil denn der mit am meisten leben gewinnen würde.
  • Original von Gnaf
    falls ein collisionsevent ausgelöst wird, wird geguckt, welches der objekte mehr zu dem anderen gerichtet ist, damit kann man rückschliessen, wer wohl eher mit absicht reingefahren ist.


    Da fährt niemand jemanden rein!

    Wie kann ich den gucken, wer in welche richtung guckt?

    Die beiden Objekte können sich in jede Richtung bewegen!
    (Nicht nut horizantal und vertikal!)
  • Aber was bringt mir das mit den Richtungen eigentlich???

    z.B.: Objekt1 guckt nach links, Objekt2 nach oben.

    Es könnte sein, dass Objekt1 objekt2 von rechts rammt, während objekt 2 nach oben geht,
    ODER
    Objekt2 rammt objekt1 von unten, während objekt1 nach links geht

    Die Richtungen sagen doch überhaupt nichts aus darüber, wer gegen wen knallt!
  • Original von TrunX
    Aber was bringt mir das mit den Richtungen eigentlich???

    z.B.: Objekt1 guckt nach links, Objekt2 nach oben.

    Es könnte sein, dass Objekt1 objekt2 von rechts rammt, während objekt 2 nach oben geht,
    ODER
    Objekt2 rammt objekt1 von unten, während objekt1 nach links geht

    Die Richtungen sagen doch überhaupt nichts aus darüber, wer gegen wen knallt!


    1.Wenn Object1 nach links guckt, bewegt es sich auch nach links.
    2.Wenn Object1 Object2 von unten rammt, dann musst du nur gucken, ob die Richtung von Object1 näher an den Winkel von Object1 zu Object2 ist, als die Richtung von Object2 an den Winkel von Object2 zu Object1.
    3.Je nachdem, wessen Richtung näher dran ist, der hat auch die Kollision verursacht.

    Ein Beispiel:
    Object1 bewegt sich nach links (seine RIchtung ist also auch nach links gerichtet), und wird von recht von Object2 gerammt, der auch nach links guckt.

    Der Winkel zwischen object1 und object2 ist 0(=Rechts), aber der Winkel zwischen object2 und object 1 ist 180!
    180(180=links) ist die richtung von object2, also muss er object1 gerammt haben!

    Verstehst du nun was ich meine?

    wenn man speed als schaden nimmt würden beide ja gleich vile schaden erleiden. (speed + speed = aufprallgeschwindigkeit) Das wäre blöd, weil denn der mit am meisten leben gewinnen würde.

    Öhm, das trifft aber nur zu, wenn beide Objecte auf einander gerichtet sind. Und genau in DEM Fall, bekommen auch beide gleichviel schaden.
    (Wenn man annimmt, dass beide die selbe Speed haben...)
    Wenn beide in die Selbe richtung schauen, selbe speed haben, und aus zufall ne kollision geschieht, sollte eigentlich keine der objecte schaden bekommen... (Was auch logisch ist!)

    Zu dem Schaden würd ich einfach mal sagen:
    Überlegt euch erstmal, wie viel Kraft auf die Objecte durch den aufprall geübt wird (Kräftepfeile!!!), dann könnt ihr auch ganz einfach physikalisch korrekt schaden ausrechnen...

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

  • ich glaub ich versteh, was du meinst, aber wie soll ich das in den GM umsetzen? (Ich kenn mich noch nicht so gut mit codes aus!)

    Es wäre sehr Hilfreich, wenn einer ein Beispiel Spiel erstellen könnte
    in dem der gerammte rot aufglüht oder so! (Die beiden Objekte sollten wie in meinem Spiel in jede Richtung gehen können | 0°-360°!!! )
  • Hab kein Bugtesting gemacht, also kann sein, dass das System noch ein wenig verbesserungsbedürftig ist.
    Manchmal leuchtet kein Object auf, und manchmal beide ^^
    Baer sonst läufts gut

    Enter restartet Game.
    Die Objecte die Rot aufleuchten wurden gerammt.
    Dateien
    • Kollission.rar

      (2,11 kB, 254 mal heruntergeladen, zuletzt: )

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

  • Wie wärs, wenn die Pfeile nicht aus dem Bildschirm verschwinden, und sich gegenseitig abstossen?
    Dann könnte man es besser beobachten...

    Kannst du das auch ohne codes machen?
    Dann versteh ich das ganze vielleicht besser?
  • Könntest du das Ganze auch in zip machen?
    :?: :ugly: :wink:


    edit(AZ) hier die zip:
    Dateien
    • Kollission.zip

      (2,31 kB, 217 mal heruntergeladen, zuletzt: )
    hetotecs Winter-Homepage - klick hier:hetotec.de


    Hier auf landet ihr auf meiner Spiele-Vorstellungs-Seite ^^
    Noch keinen Stern geschenkt bekommen? Hol dir deinen eigenen Stern
    hier yoyogames.com/games/show/30678
    Am Weihnachtsbaum Lichter anzünden? Mit 9 Musik-Titeln zur Auswahl oder eigene Musik laden
    hier yoyogames.com/games/show/20074
  • Hm, ne sry, wenn du das jetzt nicht verstehst, dann wirst du es auch mit D&D nicht verstehen, da ich genau die selben Befehle verwenden würde.

    Was dir fehlt ist einfach nur Programmiererfahrung.
    Wird schon mit der Zeit kommen, keine Angst =)
    Dann wirst du auch Probleme wie diese ganz anders angehen, in Teilprobleme aufspalten (in GM6 wären es Skripte, in C++ z.B. Klassen ^^) und somit der Lösung immer näher kommen.

    Du musst also für dieses Problem schon verstehen, wie man Winkel herausbekommt, bzw. die differenz von 2 winkeln.
    Das ist eigentlich schon die Halbe Mieze =)