Jump and Run- Anfänger Problem



  • Das von Marc++us ist zwar eigentlich recht algemein und einfach, aber dann eben nochmal für dich:
    du hast z.B eine Variable vy für die Geschwindigkeit in y Richtung. Diese ist normalerweise bei 0. Springt der Spieler jetz, so setzt du sie z.B auf 5 (angenommen y-Achse geht nach oben) ist der Spieler über dem Boden, so zählst du diese Variable in jedem Schleifendurchlauf (Frame) z.B. um 0.2 (Schwerkraft) herunter. Außerdem addierst du jeweis vy zur aktuellen Spieler-Position (hier musst du dann halt noch darauf achten, dass y nie kleiner als 0 (oder wo auch immer bei dir der Boden ist) wird.
    Falls die Zeit der einzelnen Frames stzark variiert musst du bei den erechnungen halt jeweils noch die Zeitdifferenz mit einbeziehen

    Hoffe das ist jetzt soweit für dich verständlich. 😉
    War wohl zu langsam 😃

    [ Dieser Beitrag wurde am 17.06.2003 um 17:04 Uhr von flenders editiert. ]



  • Original erstellt von flenders:
    Das von Marc++us ist zwar eigentlich recht algemein und einfach

    hä? wo hat denn marc++us was dazu geschrieben? 😕



  • Bist wohl blind, oder willst mich nur ver*****en - z.B. die 5. Antwort :p



  • Original erstellt von flenders:
    Bist wohl blind, oder willst mich nur ver*en - z.B. die 5. Antwort :p

    hä??? die 5. antwort kommt von mir!
    bist du nun vollkommen vertrottelt??? 😕



  • 1. <Major Pain>
    2. flenders
    3. <major-pain>
    4. nep
    5. flenders
    6. <gergor>
    7. flenders
    8. <gergor>



  • Ich bezog mich auf den 5. Beitrag auf dem Thread, auf den ich in meiner ersten Antwort verwiesen hatte 🙄



  • @nep
    also deiné antwort klingt schon irgendwie logisch, aber wie oder was sagt dem player jetzt wielange er nach oben springt oder ab wann er denn fallen soll...
    und wie lege ich mit verschiedenen höhen im level (weil es ja kisten gibt) fest
    wo der boden für den spieler fest????
    kann ich nicht jemanden meine bpr dateien schicken damit das mal genauer unter die lupe genommen wird?? keine angst, hier soll keiner meine hausaufgaben machen, ich muss das selber können, weil ich ja auch ein bericht dazu schreiben muss. ich will nur wissen wie ich das zu programmieren hab weil sich bei mir im kopf alles dreht wenn ich an diese ganze TOP und LEFT werte denke.
    wenn ich es erstmal hinbekommen habe das mein image springt, muss ich ja noch die begrenzungen festlegen... aaaaaaarg



  • Du musst dir das innerhalb der Spielschleife vorstellen, also du hast praktisch so etwas wie:

    while (!escape_gedrückt)
    {
       // der sprung pseudo code von vorhin
       // hier kannst du dann noch behandlungsroutinen einbauen, wenn taste nach  
          links/rechts gedrückt wird; natürlich sollte noch die ganze game-logik,ki 
          etc dazukommen
    
      zeichne_figur(x,y,breite,höhe);
    
    }
    

    Wie lange der Spieler nach oben springt hängt von der Gravitationskraft ab..du addierst ja ständig die Gravitation zur änderungsrate hinzu.. irgendwann wird diese wieder positiv und der spieler fällt. Ausserdem ist die Schnelligkeit des Sprunges auch von der Framerate abhängig. Im obigen Beispiel wird die Framerate weder limitiert noch irgendwie mithilfe von der Zeit der Sprung berechnet.. Am simpelsten limiterst du einfach die Framerate auf z.B 40 FPS oder so. Kannst ja mal im Faq schauen, da steht wie das geht.



  • also eigentlich wollte ich das nicht fragen aber da keiner aus meiner klasse die aufgabe bewältigen kann frag ich doch, dann kann ich wenigstens meinen klassen kameraden helfen...
    kann mir jemand mit dem builder eine prog erstellen wo ein bitbutton
    per tastendruck nach obenspringt und wieder runterfällt. nix komplexes.
    einfach nur eine leeres formular wo ein boden aus labels ist und der button hochspringen kann. dann zieh ich mir das 24/7 rein und dann müsste ich es nachvollziehen können 😃
    bitte helft uns.
    pleeeeeeeeeeze
    (eigentlich seh ich das ja gar net ein das ich der einzigste bin der sich darum kümmert aber ich bin ja ein christ :D)



  • Das wurde doch schon alles erklärt...Aber ok ich weiß ja nicht wie das beim Borland C++ Builder ist, wahrscheinlich ähnlich wie bei Delphi mit VCL ? Wo du deinen Code also nur in die Ereignisroutinen schreibst oder ? Bei Spieleprogrammierung unter Windows, sollte man sich nämlich schon bissl mit der WinAPI auskennen(Stichwort Nachrichtenschleife etc..), ist aber wohl blöd für euch, deshalb nimm halt nen Timer den du auf z.B auf 20 ms oder so setzt, da kommt dann der ganze sprungcode und das zeichnen rein. Wenn der benutzer z.B. die Leertaste drückt dann fängst du das im form-keydown eregnis ab, und setzt den state auf JUMPING sofern er nicht bereits auf JUMPING ist. In der Timer-Ereignisroutine testest du dann das flag auf JUMPING und führst dort den Sprungcode(siehe oben) aus, und natürllich auch das Zeichnen der Figur. Als Figur kannst ja z.B. nen simplen Kreis oder sowas benutzen...



  • @Major Pain:
    weil ich heute etwas Langeweile hatte, habe ich kurz ein kleines Borland C++ Builder - Programm mit einem hüpfenden Viech geschrieben.
    Weil ich _ziemlich viel_ Langeweile hatte, habe ich den Code recht extrem kommentiert. Müsste klar verständlich sein.
    Wenn es dich interessiert, sag mir bescheid unter meiner Hotmail: gordon_h_freeman@hotmail.com
    Source ist BCB Version 6 - keine Ahnung, ob es auch auf älteren Versionen laden lässt.
    Ciao,
    Gordon



  • danke danke danke, hab dir ne email geschrieben....



  • 🙂


Anmelden zum Antworten