Jump & Run .... Brauche Hilfe
Übersicht

![]() |
count-doku |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es hängt sich auf, weil die Kollision immer besteht,
also bleibt er immer in der While Schleife... Durch das Löschen von And yspeed=0 erhöst du dann den yspeed wert -> die While Schleife wird nichtmehr erfüllt. Probiere mal statt dem While ein If so wie in meinem Code. |
||
PCfreak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Aber war das nicht schond er fall mit
BlitzBasic: [AUSKLAPPEN]
yspeed=0 wird ja dann auf 0 gesetzt, wenn die figur den boden, also das Bild berührt ... deswegen frage ich mich ja wieso es ohne die abfrage funktioniert, aber mit der abfrage leggt ... |
||
Kentnisse: QB, BB, HTML, |
PCfreak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
count-doku hat Folgendes geschrieben: Es hängt sich auf, weil die Kollision immer besteht,
also bleibt er immer in der While Schleife... Durch das Löschen von And yspeed=0 erhöst du dann den yspeed wert -> die While Schleife wird nichtmehr erfüllt. Probiere mal statt dem While ein If so wie in meinem Code. Aber dabei entsteht folgendes Problem: Der Boden ist uneben, das heißt es gibt steigungen und senkungen, löcher und so ... wenn ich es ohne "ply=ply-gravitation#" schreibe, dann kommt die figur bei einer steigung nicht mehr hoch . Aber egal ... ich werde jetzt auf einen ebenen boden zurück greifen weil der unebene zu viele Probleme macht ![]() ![]() |
||
Kentnisse: QB, BB, HTML, |
![]() |
ZEVSBetreff: doch noch eine Lösung? |
![]() Antworten mit Zitat ![]() |
---|---|---|
In der bisherigen Diskussion sind mir zwei Dinge aufgefallen:
1. In der While-Schleife hat das ply = ply-1 überhaupt nichts mit der Gravitation zu tun. Entsprechend kryptisch ist der Code so zu lesen. 2. Auf geradem Boden bleibt der y-Wert zwar immer gleich, berechnet sich aber auf unterschiedliche Weisen: a) ySpeed = 0 wird in der Folge auf 0+gravitation gesetzt die While-Schleife wird nicht aufgeführt, da sich der Player nicht bewegt hat. der Spiele springt nicht, wenn die Leertaste gedrückt wurde, da ySpeed nun gravitation = 1 ist die Variable ply wird um ySpeed (also gravitation = 1) erhöht, wodurch der Spieler zu tief wird b) ySpeed = gravitation = 1 wird in der Folge auf gravitation + gravitation = 2 gesetzt die While-Schleife wird einmal ausgeführt, wodurch ySpeed wieder 0 wird der Spieler springt, wenn die Leertaste gedrückt wurde die Variable ply wird nicht verändert. wie man sieht, wechseln die beiden Fälle, sodass man mal springen kann, mal nicht. Wenn du einfach die Zeile Code: [AUSKLAPPEN] ply=ply+yspeed vor die While-Schleife setzt, dürfte der erste Fall rechtzeitig korrigiert werden, sodass es klappen sollte.
Hinweis: Wer komplexe Strukturen aus Bequemlichkeitsgründen vermeidet der kann 1. nicht ausreichend programmieren und strengt sich 2. nicht einmal an, es zu lernen. Ich denke, dass auf dich dir zweite Aussage auf keinen Fall zutrifft. => NIEMALS aufgeben!!!!! |
||
PCfreak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke ^^
Ich habe nochmal die Grundstruktur überdacht und ein paar kleine Änderungen vorgenommen + deinen Vorschlag eingebaut. Jetzt klappt es =D Jetzt muss ich es nur noch hinbekommen, dass man z.b. eine steile Steigung nicht ohne Sprung hochkommt ... ich werde es wahrscheinlich mit einem BLOCK-Bild versuchen, was das berühren des Steilen bodens nicht mal ermöglicht ^^ lasse mich gerne von anderen Ideen umleiten aber ich versuche es mal so ![]() Danke nochmal ![]() ![]() |
||
Kentnisse: QB, BB, HTML, |
![]() |
ZEVSBetreff: steile Steigung |
![]() Antworten mit Zitat ![]() |
---|---|---|
du könntest die While-Schleife einfach um einen Zähler erweitern, und dann bei extremen Steigungen (hoher Zähler) die Schleife beendet und die Bewegung rückgängig macht.
Wahrscheinlich ist aber ein Block, der im Weg steht, wesentlich logischer als ein Boden, der plötzlich zur Wand wird. |
||
PCfreak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja ^^
Wobei ich das mit dem "um einen zähler erweitern" nicht verstehe ... Woher weiß die Schleife dann, wann die steigung zu hoch ist oder wann sie passt ? ... Ich glaube da steht wieder etwas meinen Gedanken im weg ![]() ![]() Ich zeige euch nachher mal meinen Code + Bilder etc ... PS.: Gibt es in BB eine Befehl um Bilder zu drehen? |
||
Kentnisse: QB, BB, HTML, |
![]() |
ZEVSBetreff: Zähler / RotateImage |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Zähler:
BlitzBasic: [AUSKLAPPEN] Const MAX_COUNTER = 5; Maximale Steigung: 5 (500%) (ungetestet) Die Variable counter zählt, wie weit der Spieler nach oben geschoben wurde. Wenn dies zu weit ist (counter > MAX_COUNTER) wird die Bewegung des letzten Frames rückgängig gemacht (plx = last_plx : ply = last_ply) und abgebrochen. Die Variablen last_plx und last_ply werden danach immer auf den letzten Stand gebracht. Die Funktion, die du suchst, heißt RotateImage |
||
PCfreak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke ^^
Jetzt muss ich das noch ein bisschen anpassen und alles als Funktionen absetzen =) aber danke für beides ![]() EDIT :: Hier mal mein Werk, zwar ist das Menü nicht drin, aber das kommt später noch, weil es ein bisschen Buggt ^^ Einfach klicken: >> Download |
||
Kentnisse: QB, BB, HTML, |
PCfreak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry eine Frage habe ich doch noch:
Ich möchte die While-Schleife in eine Funktion setzen. Aber wenn ich dies tue, bricht das Programm ab, Markiert die While-Bedingung und sagt, dass das Bild nicht existiert .... Dieses problem hatte ich schon öfters ... Wieso kann ich so etwas nicht in eine Function setzen ? |
||
Kentnisse: QB, BB, HTML, |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Variable wird Local![]() ![]() |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
PCfreak |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke ^^
Klappt soweit alles ![]() Echt cooles Forum |
||
Kentnisse: QB, BB, HTML, |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group