2D-Kollision
Übersicht

sprimeBetreff: 2D-Kollision |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallöle..
Ich habe eine Frage.. Die kollisionen mit den einzelnen tiles funktioniert nicht.. ich habe im moment 2 verschiedene tilearten in meiner map drinne und habe die so eingestellt: Code: [AUSKLAPPEN] For y = 0 To 15
For x = 0 To 37 If map(x,y) = 1 Then DrawImage kartg, x*32, y*32 ElseIf map(x,y) = 2 Then DrawImage kartd, x*32, y*32 EndIf Next Next der kollidiert mit map(x,y) = 1 gut, egal von welcher seite der spieler kommt, er stößt gegen... bei map(x,y) = 2 also beim anderen tile springt er einfach durch.. ich weiß nicht wieso.. es hat genau die gleiche größe etc.. Was kann ich machen |
||
![]() |
ToeB |
![]() Antworten mit Zitat ![]() |
---|---|---|
ja dann schik uns doch mal den code wo die Kollision erkannt wird ^^
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! |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Der Code zeigt nur wie Du es zeichnest, von der Kollision sieht man jetzt nichts ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
sprime |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Könnt ihr hiermit was anfangen ?? Das macht die kollision:
Code: [AUSKLAPPEN] If jump = True Then Player_temp_y = Player_temp_y -1 Player_pos_y = Player_pos_y - Player_temp_y If Player_temp_y =< 0 Then ; Sobald Temp_y den Wert 0 erreicht hat If map((Player_pos_x +16) /32,(Player_pos_y +32) /32)=1 Then ;überprüft, ob sich ein Tile unter dem Spieler befindet jump = 0 temp = Player_pos_y /32 ;\ Player_pos_y = temp *32 EndIf EndIf EndIf ;Schwerkraft If jump = False Then If map((Player_pos_x +16) /32,(Player_pos_y +32) /32)=0 Then ; Sollte kein Tile unter dem Spieler sein jump = True Player_temp_y = 0 EndIf EndIf bzw falls er von unten, oben gegenspringt : Code: [AUSKLAPPEN] If map((Player_pos_x +16) /32,Player_pos_y /32)=1 And jump = True Then
jump = False Player_pos_y = Player_pos_y +2 EndIf |
||
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: If map((Player_pos_x +16) /32,(Player_pos_y +32) /32)=1
Hier wird nur auf Tilenummer 1 überprüft, entsprechend wird er auch nur auf diesem laufen können. Ein >=1 wird Dein Problem beheben. Zudem solltest Du die Kollisionsprüfung nicht von jump abhängig machen. Gibt möglicherweise Probleme in späteren Stadien wenn Du den Gedanken mal weiterverfolgst. Wenn player_temp_y kleiner 0 ist (die Prüfung vor der Kollisionsprüfung) springt das Männicken nach oben, eine Prüfung nach unten macht da jetzt finde ich nicht sehr viel Sinn? Soweitmal meine Gedanken zum Code. |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group