Herunterfallen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Serdon

Betreff: Herunterfallen

BeitragMo, Okt 01, 2012 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich bin grad an nem jump n run/ Rollenspiel dran und habe nun folgendes Problem: Ich möchte dass mein Char runterfällt sobald das tile unter ihm keine Kollision anzeigt. Er soll dann solange fallen bis er wieder "festen Boden" unter den Füßen hat.
Ich hab mir auch schon im Forum ein paar ältere Fragen dazu durchgelesen, hab aber nichts gefunden was mir wirklich weitergeholfen hat.

Code: [AUSKLAPPEN]

Repeat
Cls
If py-1 < 2 Then
py-1
Flip
Until Keyhit(1)

Hubsi

BeitragMo, Okt 01, 2012 18:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Zeigst Du uns den tatsächlichen Codeabschnitt? Das Beispiel ist nicht wirklich zum helfen zu gebrauchen Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

Serdon

BeitragMo, Okt 01, 2012 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, das ist der Codeabschnitt den ich mir "gebastelt" hab. Ich weiß ist wahrscheinlich eine Augenvergewaltigung für einen Pro-Progger, aber ich kenn mich eben nicht so aus.

Xeres

Moderator

BeitragMo, Okt 01, 2012 18:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Das ist weder gültiger Code, noch könnte man ihn laufen lassen, um zu sehen, was passiert. Ich schließe mich Hubsi an: Bitte poste den richtigen Code.
Oder du bist wirklich noch nicht so weit, um mit Tilekollision an zu fangen. Dann arbeite ein Tutorial oder eine BPS Aufgabe durch.
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Serdon

BeitragMo, Okt 01, 2012 18:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Also hier ist der gesamte code. Ich hab mich auch schon mit dem Problem auseinandergesetzt und weiß ungefähr wie ich es angehen sollte: py ist die y variable des spielers. Ich prüfe also ob das tile unter dem spieler "fester Boden" oder luft ist. Wenn es luft ist, setze ich den Spieler ein tile nach unten. Dann wird wieder geprüft etc...

Also noch mal mein gesamter code
Code: [AUSKLAPPEN]


Graphics 1024,768,16,1 

tileset = LoadAnimImage("tileset.bmp",32,32,0,5)

char = LoadImage("char.bmp")


Gold = 0
Leben = 100

px = 6
py = 6
move = 1
Dim map(31,23)


;Legende:
; 0 = Stein
; 1 = Hintergrund - Mauer
; 2 = Vordergrund - Mauer
; 3 = ?
; 4 = Weg
; 5 = ?
; 6 = ?
; 7 = ?
; 8 = ?
; 9 = ?

Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,1,4,4,4,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 4,4,4,4,1,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4
Data 2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
Data 2,2,2,2,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
Data 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2


For y = 0 To 23
For x = 0 To 31

Read map(x,y)
Next
Next


Repeat
;Den Backbuffer setzen
SetBuffer BackBuffer()

Cls
;ESC-Taste zum Beenden
If KeyDown(1) Then End


For y = 0 To 23
For x = 0 To 31
DrawImage tileset,x*32,y*32,map(x,y)
Next
Next


Text 5,5,Leben
Text 50,5,Gold

Repeat
Cls
If py-1 < 2 Then
py = py-1
move = 1
EndIf
Flip
Until KeyHit(1)

If KeyDown(208) Then

If map(px,py+1) > 2 Then

py = py+1

move = 1

EndIf
EndIf

If KeyDown(200) Then

If map(px,py-1) > 2 Then

py = py-1
move = 1

EndIf
EndIf

If KeyDown(203) Then
If map(px-1,py) > 2 Then

px = px-1

move = 1

EndIf
EndIf

If KeyDown(205) Then

If map(px+1,py) > 2 Then

px = px+1
move = 1

EndIf
EndIf

If move = 1 Then x = px * 32: y = py * 32: DrawImage char,x,y

;flippen und zum anfang zurück
Flip
Forever

Xeres

Moderator

BeitragMo, Okt 01, 2012 19:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Serdon hat Folgendes geschrieben:
Ich prüfe also ob das tile unter dem spieler "fester Boden" oder luft ist.
Nein, dass tust du nicht. Du prüfst ob py minus eins kleiner ist als zwei - und das auch noch ganz willkürlich in einer extra Schleife innerhalb der Hauptschleife.
Bitte rücke den Code mit Tabulatoren so ein, dass man die zugehörigen Blöcke sehen kann.
BlitzBasic: [AUSKLAPPEN]
Repeat
Cls
If py-1 < 2 Then
py = py-1
move = 1
EndIf
Flip
Until KeyHit(1)
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

Serdon

BeitragMo, Okt 01, 2012 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ok und wie sollte ich das angehen? Irgendwelche Anregungen wären gut

Midimaster

BeitragMo, Okt 01, 2012 19:46
Antworten mit Zitat
Benutzer-Profile anzeigen
ich rate dir dringend zu dem Tutorial über Programm-Ablauf:

https://www.blitzforum.de/foru...hp?t=33584

Daraus die Kapitel I bis IV


und auch sehr wichtig das "Fehler suchen Tutorial":

https://www.blitzforum.de/foru...hp?t=33510

daraus die Kapitel I bis IV
Gewinner des BCC #53 mit "Gitarrist vs Fussballer" http://www.midimaster.de/downl...ssball.exe

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group