Fake 3D Physik/Koordinaten

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

  • Fake 3D Physik/Koordinaten

    Hey zusammen,

    ich arbeite aktuell an einem rundenbasierten Soccer Game, doch dafür brauche ich eine Art von 3D Physik. Z.B. Pass wird ausgeführt => x,y,z-Flugbahn des Balls wird berechnet und in isometrischer Sicht dargestellt, obwohl die Optik erstmal nebensächlich ist - die Berechnung der Flugbahn und entsprechende Umwandlung in die 3 Achsen wäre wesentlich entscheidender. Ich hatte schon ein paar Ideen, aber die stellen sich als entweder sehr kompliziert dar oder scheitern an Problemen wie Kollision.

    Vielleicht hat jemand schon Erfahrung mit einem ähnlichen Problem oder kennt ein gutes PlugIn o.Ä. Ich bin für alle Ratschläge offen.


    Danke.
  • Also wenn du dich nicht mit Ebenschnitt/Schnittkurven etc befassen möchtest und daher auf absoluten realismus verzichten kannst würde ich es so machen.

    Die Richtung des Balles ist in 2D berechnet. Für die Höhe baust du eine z Variable ein und ein zspeed. je höher der zspeed desto weniger wird xspeed und yspeed. Alternativ könnte der Ball noch drall haben der sich auf die Kurve des Balls auswirkt. zspeed steigt dann zB flach an aber fällt stark weil du immer einen drallwert dazuaddierst.
    Für Kollisionen braucht jeder Spieler einen z wert für kopf und Füße, wenn der z wert des Balles dazwischen liegt und sich in 2D mit dem Spieler überschneidet, kommt es zu einer Kollision, ansonsten ignoriert er den jeweiligen Spieler.

    Wenn du den Ball dann drawest wird er an stelle x, y-(z/2) gedrawed, wenn du eine iso ansicht im 2:1 ratio machst.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • So ziemlich den Gedanken hatte ich auch schon, ich hatte sogar schon den Plan parallel im Room einen Ball zu berechnen, der die fehlende Achse berechnet (z.B. z-Achse und dessen Positionswerte dann auf den echten Ball übertragen). Allerdings tendiere ich im Moment fast eher dazu die y-Achse zu belassen, da das Simulieren von Schwerkraft ohne die Gravity Engine mir recht schwer fällt. Gerade in Situationen mit Drall und Kollisionen wird es halt echt komplex, egal welche Achse ich nehme, denn dafür müsste ich von Hand Formeln erstellen, die halbwegs realistische Flugbahnen berechnen. Gibt es vielleicht noch eine andere Idee? Z.B. die ich anfangs erwähnte, von wegen 2 Bälle mit den gleichen Eigenschaften, deren Achsen dann zusammengelegt werden? Wäre das eine Option?

    EDIT: Okay ich versuch`s jetzt mit den 2 Bällen. Weiß jemand wie ich, wenn ich einen Physics Room inkl. Gravity habe, ein Objekt von der Schwerkraft ausnehmen kann?

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

  • Ich hab dir mal schnell was gebastelt. Das kannst du benutzen falls du Studio verwendest. Ich habe es in englisch geschrieben, aber ich hoffe es ist trotzdem verständlich.

    So wie ich es gelöst habe, schießt du den Ball höher wenn du näher an ihm dran stehst, wenn du weiter weg bist dann fliegt er eher flach. Mit "N" kannst du sprinten bzw den Ball dribbeln, und mit "M" springen bzw kicken. Je länger du "M" gedrückt hältst desto fester kickst du. Am oberen und unteren Spielfeldrand gibt es Mauern (oder du setzt eine iwo in den Raum) da kannst du sehen, wie der Ball entweder abprallt oder drüberfliegt.

    Das System ist nicht komplett, dh gibt es nur einen Spieler, keien Kollision zwischen Wand und Spieler und das drawen wann ein object vor oder hinter etwas ist ist nicht 100% korrekt, aber ich hoffe es bringt dich auf die richtige Bahn.

    DOWNLOAD

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Danke ja so in der Richtung habe ich es mir auch vorgestellt - für die Berechnung wäre jetzt natürlich die spannende Frage, inwiefern nicht nur die Darstellung korrekt ist, sondern auch externe Variablen mit den tatsächlichen 3d-Koordinaten des Balls gefüttert werden und damit die Kollisionen gut gelöst werden können. Aber danke für das inspirierende Tool, bei mir dauert das alles etwas länger ;)