![]() |
Minispiel-Physik
|
Re: Minispiel-Physik
|
Re: Minispiel-Physik
ja, an newton hatte ich auch schon gedacht, aber damit kenne ich mich nicht aus. kennt jemand ein tutorial dazu?
gruß |
Re: Minispiel-Physik
|
Re: Minispiel-Physik
"Motion Mountain"! :) ->
![]() Mein Lieblingsphysikbuch und auch noch kostenlos. |
Re: Minispiel-Physik
Liste der Anhänge anzeigen (Anzahl: 1)
Ich glaube nicht, dass man für so ein Spiel eine Physikengine braucht. das ist ein bisschen mit Kanonen auf Spatzen geschossen. Ein bisschen Pseudophysik und das wars ;) Schließlich ist die Physik im Spiel ja auch nicht gerade realistisch. :mrgreen:
Ich habe mal eine kleine Zecihnung angehängt, wie ich das machen würde. |
Re: Minispiel-Physik
Zitat:
zu dem buch: ich habe es mir mal runtergeladen und werde es mir mal anschauen. :) gruß |
Re: Minispiel-Physik
Naja, ein bisschen Mechanik halt.
v = a * t s = 0.5 * a * t^2 und das war's auch schon. Ein bisschen Newton'sche Axiome und das war kein Hexenwerk. So kann man recht leicht berechnen, wie weit das Teil fliegen muss. Man kann es mit der Erdbeschleunigung fallen lassen... Aber Eigentlich brauchst Du dafür nur ein bisschen Sinusse und Cosinusse, da Du eigentlich nur Geschwindigkeitsvektoren miteinander verrechnen musst. Die Beschleunigungen sind eigentlich unwichtig. LG, Markus |
Re: Minispiel-Physik
okay die gleichungen kenn ich ja aus physik ;) aber was nehme ich als zeit? die differenz zwischen den frames?
und wie kann ich die kollision mit dem boden realisieren? also die abfrage nach einzelnen pixeln dürfte ausscheiden bei oder? vielen dank! :) gruß |
Re: Minispiel-Physik
Du könntest ein Polygon benutzen und dann mit PointInPoly prüfen:
Delphi-Quellcode:
Und wie gesagt, bei der Physik würd ich mir nicht so viel Arbeit machen. Bei der Beschleunigung bergab bzw. der Verlangsamung bergauf würde ich einfach ein bisschen rumexperimentieren bis es passt. Und außer Beschleunigen, Bremsen und Springen gibt es in dem Spiel ja auch nichts, oder? Beuschleunigen und Bremsen dürfte jedenfalls kein Problem sein und Springen eigentlich auch nicht.
Function PointinPoly(points:array of Tpoint;nrpoints:Integer;tp:Tpoint):Boolean;
var hnd:hdc; BEgin hnd:=CreatePolygonRgn(points,nrpoints,Winding); Result:=PtInRegion(hnd,tp.x,tp.y); DeleteObject(hnd); end; //edit: @0,375: Uppsi, äh ja meinte ich^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz