Jump'n'Run collision klappt nicht =(

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ToeB

Betreff: Jump'n'Run collision klappt nicht =(

BeitragSo, Nov 30, 2008 16:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()


Global map_x = 19
Global map_y = 14
Dim map(map_x,map_y)

Restore map
For yy = 0 To map_y
   For xx = 0 To map_x
      Read map(xx,yy)
   Next
Next

Global x1#=60,y1#=530,x2#,y2#
Global speed_y#,speed_x#

Repeat
   
   ;speed_x = speed_x * 0.9
   KA = 0
   If KeyDown(30) Then speed_x = speed_x - 0.1 : KA = 1
   If KeyDown(32) Then speed_x = speed_x + 0.1 : KA = 1
   If Jump < 2 And KeyHit(17) Then Jump = Jump + 1 : FY# = -5 : y1 = y1 - 2
   If Jump  Then
      FY = FY + 0.1
      speed_y = FY
   Else
      speed_y = speed_y + 0.5   
   EndIf
   If KA = 0 speed_x = speed_x * 0.95
   For xx = 0 To map_x
      For yy = 0 To map_y
         If map(xx,yy)
            If RectsOverlap(xx*40,yy*40,40,40,x1,y1,20,20)
               If RectsOverlap(xx*40,yy*40,40,40,x1,y1+20,20,1) Then
                  speed_y = 0 : Jump = 0
               EndIf
               If RectsOverlap(xx*40,yy*40,40,40,x1,y1+00,20,1) Then
                  speed_y = 0 : Jump = 0
               EndIf
               If RectsOverlap(xx*40,yy*40,40,40,x1+20,y1+1,1,18) Then
                  speed_x = speed_x*-0.9
                  x1 = x1 - 1
               EndIf
               If RectsOverlap(xx*40,yy*40,40,40,x1+00,y1+1,1,18) Then
                  speed_x = speed_x*-0.9
                  x1 = x1 + 1
               EndIf
            EndIf 
         EndIf
      Next
   Next
   y1 = y1 + speed_y
   x1 = x1 + speed_x   
   For xx = 0 To map_x
      For yy = 0 To map_y
         If map(xx,yy)
            If RectsOverlap(xx*40,yy*40,40,40,x1,y1+20,20,1) Then
               y1 = y1 - 1 : speed_y = 0
            EndIf
            If RectsOverlap(xx*40,yy*40,40,40,x1,y1+00,20,1) Then
               y1 = y1 + 1
            EndIf
         EndIf 
      Next
   Next
                  
   Cls
   Color 100,100,100
   For xx = 0 To map_x
      For yy = 0 To map_Y
         If map(xx,yy) Rect xx*40,yy*40,40,40,1
      Next
   Next
   Color 255,0,0
   Oval x1,y1,20,20,1   
   Color 255,255,255
   Text 1,1, speed_y
   Flip
Until KeyHit(1)
End

.map
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,1,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1


Warum geht die Kollision nicht ? Was mache ich falsch ?


Wäre nett wenn ihr es mir beantworten könnt Sad

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ozzi789

BeitragSo, Nov 30, 2008 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich seh dein Problem nicht
Bei mir geht es, jedoch nocht nicht optimal oO
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

ToeB

BeitragSo, Nov 30, 2008 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
genau das mien ich ja... der hakelt dauernt, verirrt sich in wänden... sowas macht doch keinen spaß.... Sad

mfg ToeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ozzi789

BeitragSo, Nov 30, 2008 16:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke es liegt an deinem Rücksetzungsverfahren, d.h wo du einfach den Speed verkleinerst.
Confused
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

ToeB

BeitragSo, Nov 30, 2008 16:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein ehrlich ? Sry aber so doof bin ich auch nicht ^_^'

Wie mach ich es denn am besten ?

mfg toeB
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ozzi789

BeitragSo, Nov 30, 2008 16:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Das fragst du mich?Very Happy

Ich denke der Fehler ist das du den Speed auf Null setzt anstatt ihn ein wenig nach hinten zu setzen, zmb anstatt

Code: [AUSKLAPPEN]
speed=0

würd ich

Code: [AUSKLAPPEN]
speed=0
xkordinate=xkordinate-1
ykordinate=ykordinate-1


Sonst würd ich mal in der Forum suche mal gugen, vlt findest du ja etwas Wink
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group