Mal wieder Sprung :) *GELÖST*

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

BlackError

Betreff: Mal wieder Sprung :) *GELÖST*

BeitragDi, Apr 29, 2008 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen,

Ich weiss, dass das Thema Springen schon des öfteren hier besprochen worden ist. Jedoch finde ich diesbezüglich keine Lösung für mein Problem.

Also in wirklichkeit ist es ja so, dass wenn man abspringt, eine bestimmte Geschwindigkeit hat, die dann um so höher man kommt, abnimmt, bis sie 0 erreicht hat, was bedeutet, dass der höchste Punkt erreicht wurde. Danach vergrössert sich die Geschwindigkeit nach unten wieder, bis man auf dem Boden aufkommt.

In der Programmierung möchte ich das auch so umsetzen:

Ich habe eine Variable S#.Diese soll zuerst -1 sein, wenn man nicht springt, dass man auf dem Boden bleibt.. Wenn die Leertaste gedrückt wird, soll die Variable auf z.B. 2 gesetz werden (Die Anfangsgeschwindigkeit wie oben beschrieben) und nach jemdem schleifendurchlauf um z.B. 0.3 verringert werden, bis der Wert 0 erreicht wird, was also der Höchste Punkt im Sprung sein soll. Nun soll der Wert auf 0 gesetzt werden, und in jedem schleifendurchlauf auch wieder z.B. 0.3 abgezogen werden.

Ihr fragt euch bestimmt, warum ich den Wert auf 0 setzten will, wenn ich ihn nicht einfach gleich weiter nach unten laufen lassen könnte. Allerdings wird dadurch die Geschwindigkeit des herunterzählens zu gross, weil sie sich ja immer weiter steigert, wenn ich S# = S# - 0.3 mache. So soll nochmal von 0 an heruntergezählt werden, dass eine neune Beschleunigung der Camera von 0 entsteht. Das müsste einfach besser aussehen.


Code: [AUSKLAPPEN]


 If KeyHit (57) Then
      Sprung = 1
 End If
   
 If Sprung = 1 Then
     ;-----WO SETZE ICH S# = 2 (Anfangsgeschwindigkeit) ein?????
     S# = (S# - 0.3)
     If S# < 0 Then                       ;Wenn höchster Punkt erreich wurde, soll S# wie oben beschrieben 0 sein!
           S# = 0                            ;--------------Das S# = 0 kann doch auch nicht direkt über S# = (S# - 0.3)
           S# = (S# - 0.3)
           If EntityCollided (Cam,2) Or EntityCollided (Cam,3) Then  ;Wenn auf Boden auftreffen
            Sprung = 0
           End If
 End If

 If Sprung = 0 Then
    S# = -1
    If Not EntityCollided (Cam,2) Or EntityCollided (Cam,3)     ;wenn ich einen steilen Hang hinuterlaufe
       S# = -10
    End If
 End If

TranslateEntity Cam, 0,S#,0


Ich hoffe man erkennt mein Problem. Ich weiss einfach nicht, wo ich S# = 2 und S# = 0 einsetzten soll.
Direkt über das herunterzählen geht so nicht.

Ich hoffe, ihr könnt mir helfen.

Gruss BlackError
  • Zuletzt bearbeitet von BlackError am Di, Apr 29, 2008 21:17, insgesamt einmal bearbeitet

ZaP

BeitragDi, Apr 29, 2008 19:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

If Keyhit(57) Then S# = 2 : Sprung = 1
Starfare: Worklog, Website (download)

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group