Flugzeug



  • Ich versuche ein Spiel zu schreiben (2D) wo man mit nem kleinen Flugzeug rumfliegen und sich gegenseitig abschiessen kann...
    Nun möchte ich aber, dass sich meine Flugzeuge einigermaßen realistisch verhalten (von wegen Auftrieb und so).

    Ich hab jetzt schon drei Stunden probiert mit allem möglichen kram, aber immoment fliegt es so wie das Raumschiff bei Astroids...

    Könnt ihr mir vielleicht ein paar ideen geben, wie man das flugzeug einigermaßen korrekt fliegen lassen kann...?



  • Also du siehst die Flugzeuge von der Seite?

    Hmm,
    dann bildest du dir eine "Linie", die der momentanen Bewegungsgeschwindigkeit entspricht (Geschwindigkeitsvektor).

    Dann hast du ja davon (einigermaßen) unabhängig davon den Anstellwinkel.
    Der bildet mit dem Geschwindigkeitsvektor auch einen Winkel.
    Dieser gibt sozusagen die Diskrepanz an zwischen dem Flugwind, und dem, wohin das Flugzeug will. Je nach Winkel zwischen Tragflächen und Flugwind und Geschwindigkeit passt sich der Geschwindigkeitsvektor dem Anstellwinkel an.
    Hoher Flugwind drückt den Anstellwinkel zusätzlich etwas nach oben.
    So wird ich es machen.

    Die Gravitation spielt natürlich auch noch eine Rolle.

    Strömungsphysikalisch "nicht ganz" astrein, aber sollte für dein 2D Spiel reichen. 😉



  • Ah das klingt gut... und das hört sich sogar noch realtiv einfach an... ich werde das mal probieren, zur not frag ich wieder 🙂



  • Je nach Winkel zwischen Tragflächen und Flugwind und Geschwindigkeit passt sich der Geschwindigkeitsvektor dem Anstellwinkel an.

    Kannst du mir das n bissle genauer erklären? Wie meinst du das? wenn der winkel zu groß ist, dann passt er sich nicht an, richtig wenn die geschwindigkeit schnell ist, dann? passt er sich dann schnell an oder langsam?



  • -Foo- schrieb:

    Je nach Winkel zwischen Tragflächen und Flugwind und Geschwindigkeit passt sich der Geschwindigkeitsvektor dem Anstellwinkel an.

    Kannst du mir das n bissle genauer erklären? Wie meinst du das? wenn der winkel zu groß ist, dann passt er sich nicht an, richtig wenn die geschwindigkeit schnell ist, dann? passt er sich dann schnell an oder langsam?

    Hmm,

    halt am besten mal deine flache Hand aus dem Autofenster.
    Ohne auf Formeln zurückzugreifen, ist es schwer zu erklären.
    Die Tragflächen werden ohne Steuerung bestrebt sein, den kleinsten Luftwiderstand herzustellen. Sprich, sich "in den Wind" zu legen.
    Also höhere Strömgeschwindigkeit = höhere "Gleichstellungs"Kraft.
    Allerdings ist eine Änderung der Flugrichtung mit höherer Geschwindigkeit mit einem größeren Energieaufwand verbunden.

    Diese 2 Faktoren wirken also entgegen. Zu welchen Anteilen, musst du dir selbst ausfummeln. 😉

    Bau dir doch mal einen Papierflieger und stell den Ventilator an.
    Im Ernst jetzt.



  • Hm, gut, dann werd ich rumfriemeln müssen...

    Aber ich hab keinen Ventilator, echt nicht!



  • -Foo- schrieb:

    Aber ich hab keinen Ventilator, echt nicht!

    Ist dein kompletter Rechner also passiv gekühlt?



  • Ok, daran hab ich nicht gedacht... macht aber nix, wenn ich dahinter krabbel kann ich keine beobachtungen mehr vornehmen *verrenkt dasitzt*

    is auch egal jetzt, da sich mir bereits weitere probleme aufgetan haben:

    Wenn mein tolles Flugzeug zu langsam fliegt (z.B. weil steil nach oben), so soll es zu fallen beginnen und vorne überkippen. nur stellt sich bei mir das kleine problemchen auf, dass ich das nicht so recht hinbekommen will.
    ich hab mir jetzt gerade auf dem sche***haus überlegt, dass vielleicht meine "den einen vector an den anderen anpassen"-methode überdenken muss und den bewegungsvector auf gerade-nach-unten stellen muss.

    so dass ich sage, wenn du schnell fliegst, dann passt sich der bewegungsvector dem richtungsvector schneller an als umgekert und wenn du langsam fliegst, so passt sich der richtungsvector dem bewegungsvector schneller an, gut odda? 🙂

    Kann man das so machen?



  • Du solltest mit vier Vektoren arbeiten.
    v sollte die Geschwindigkeit des Flugzeuges sein (In Flugrichtung). a sollte der Auftrieb sein (senkrecht zur Flugrichtung) und g sollte die Gravitation sein, sowie Alpha als der Winkel des Flugzeuges zum Horizont.
    dabei empfiehlt es sich |a|=c*cos(alpha)*|v| zu setzen, wobei ich nicht weiss, was c idealerweise sein sollte. Müsste aber eine Konstante sein. Setze dann v(neu)=v+a+g.
    Sollte für halbwegs realistisches Flugverhalten sorgen.



  • Naja, das Flugverhalten wird so aber nicht richtig wiedergegeben. Besser wäre es, die Auftriebs- und Widerstands-Berechnung, die im Modellflugzeugbau verwendet werden, zu benutzen. Die großen Flieger bauen ja auch darauf auf.
    Es gibt ein paar sehr gute Bücher ("Aerodynamik der Motorflugmodelle", "Antrieb nach Maß", ...), aber für eine einfache, jedoch ziemlich realistische Realisierung reicht es, mal nach "Auf die Dauer hilft nur Power" 🙂 zu googeln. Von dort geht es dann weiter. Der Formelsatz ist nicht groß.
    Die Flugsimulatoren rechnen auch nur so.

    Blackbird


Anmelden zum Antworten