Forum: Sonstige Fragen zu Delphi
Delphi
by jfheins,
11. Aug 2009
Ja, sorry ...
Das Koordinatensystem, was ich benutzt habe, ist mit der Y-Achse nach oben und X-Achse nach rechts.
Mach ganz am Ende sowas:
X := Round(Position.X);
Y := Round(Screen.Height - Position.Y); // Screen.Height bei Vollbild, sonst eben die Höhe des Anzeigebereichs
Dann sollte es besser gehen
Forum: Sonstige Fragen zu Delphi
Delphi
by jfheins,
10. Aug 2009
Also ich würde da so rangehen:
1. Definiere einen record:TVector = record
X, Y: Double;
end;Damit können wir dann rechnen ;)
2. Schreibe Methoden zum Rechnen:function Add(a, b:TVector):TVector;
begin
Result.X := a.X + b.X;
Result.Y := a.Y + b.Y;
Forum: Sonstige Fragen zu Delphi
Delphi
by jfheins,
10. Aug 2009
Also wenns wirklich nur ein bisschen Gravitation sein soll, geht das so:
// Speed = 0 ; Gas geben erhöht, Bremsen erniedrigt dessen Wert, erhöht sich bis max. 150 ; min. 0
FXSpeed := round(cos(PI/180*Angle)*Speed);
FYSpeed := round(sin(PI/180*Angle)*Speed + 0.5 * TimeGap);
X := X + FXSpeed * TimeGap;
Y := Y + FYSpeed * TimeGap;
Forum: Sonstige Fragen zu Delphi
Delphi
by jfheins,
10. Aug 2009
Ich würde folgendes Vorschlagen:
1. Du überlagst dir, welche Kräfte auf das Flugzeug wirken. Hier würde ich die Luftreibung, die Auftriebskraft, die Schwerkraft und den Schub der Triebwerke ansetzen.
2. Wovon hängen die Kräfte ab? Luftreibung kann schnell kompliziert werden, nehmen wir mal an, die Kraft ist proportional zum Quadrat der Geschwindigkeit. Auftrieb ebenfalls. Schwerkraft und...