Jump

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

relentless92

Betreff: Jump

BeitragMi, Dez 23, 2009 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Huhu,
Erstmal allen ein Frohes Fest!
Kommen wir zu meinem Problem:
Scheinbar bin ich der Benutzung des "While" nicht mächtig.
Folgender Code:

Code: [AUSKLAPPEN]

Function Hero_Jump()

If KeyHit(57) Then
Jump=1
OLD_heroy#=hero_y#
EndIf

If Jump=1 Then

   hero_y=hero_y-a#
   a#=a#-0.1
   
   If a<=0 Then
      Jump=2
   EndIf
   
EndIf

If Jump=2 Then

   While Not hero_y#=OLD_heroy#
   hero_y=hero_y+a#
   a#=a#+0.1
   Wend
   
EndIf

End Function


Bis Jump=2 wird geht alles, dann steht die Figur. Wieso funktioniert also meine While-Schleife nicht korrekt?

MfG
~
Fussball spielen viele, Kart fahren nur die Besten.
~
 

Lion

BeitragMi, Dez 23, 2009 20:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hängt das ganze programm?
Dann tipp ich auf ne endlosschleife, vllt sind die a# abstände zu groß. ich würd mal versuchen
BlitzBasic: [AUSKLAPPEN]
While hero_y#<OLD_heroy#

ansonsten versteh ich dein problem gerad nich so ganz..
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

relentless92

BeitragMi, Dez 23, 2009 20:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Lion,
jetzt hängt das Programm nicht mehr, aber der Hero wird instant auf die alte Position gesetzt, der Sprung wird also unterbrochen. Das ist ebenfalls sehr unschön...
~
Fussball spielen viele, Kart fahren nur die Besten.
~

Nicdel

BeitragMi, Dez 23, 2009 20:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Du siehst die Veränderung in der Schleife nicht.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

Lion

BeitragMi, Dez 23, 2009 20:31
Antworten mit Zitat
Benutzer-Profile anzeigen
ist ja auch klar.
Während einer schleife wird nix anderes mehr ausgeführt, sprich du musst das while zu ner if-abfrage machen.
Sprich BlitzBasic: [AUSKLAPPEN]
If hero_y#<OLD_heroy# Then [...]

Dann sollte das stufenweise absinken.
Damit es aber nicht zu tief sinkt, würd ich zusätzlich noch machen:
BlitzBasic: [AUSKLAPPEN]
If hero_y#>OLD_heroy# Then
hero_y#=OLD_heroy#
EndIf
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

relentless92

BeitragMi, Dez 23, 2009 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
EDIT: Lion war schneller.
Das funktioniert soweit mit dem If, allerdings habe ich dann keinen konkreten Schlusspunkt, falls du verstehst was ich meine.
Das a# ist anfangs 5, zählt bis 0, (JUMP=2), dann wieder hoch bis 5 - allerdings stoppt es bei 5.1.

Allerdings ist das nicht schlimm, da ich a# einfach bei jedem Keyhit57 auf =5 setzen kann.

Danke für die Hilfen.
MfG
~
Fussball spielen viele, Kart fahren nur die Besten.
~
  • Zuletzt bearbeitet von relentless92 am Mi, Dez 23, 2009 20:38, insgesamt einmal bearbeitet

Nicdel

BeitragMi, Dez 23, 2009 20:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Keine While-Schleife verwenden, die Variablen in der Hauptschleife verändern.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
 

Lion

BeitragMi, Dez 23, 2009 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, wie ichs geschrieben hab.
Das prinzip einer schleife solltest du dir übrigens nochmal irgendwo ansehen...
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x

relentless92

BeitragMi, Dez 23, 2009 20:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat sich ja alles geklärt Wink

P.S.: Die Prinzipien der Schleifen sind mir durchaus bekannt, das war nur ein logischer Denkfehler meinerseits.

MfG
~
Fussball spielen viele, Kart fahren nur die Besten.
~

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group