Kollisionsproblem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

LoD

Betreff: Kollisionsproblem

BeitragSa, Dez 17, 2005 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab eine Tilemap mit meiner Bodenstruktur bei der das einzelne Tile 16x16 Pixel besteht.
Da drauf habe ich einen Kaktus mit
BlitzBasic: [AUSKLAPPEN]
DrawImage kaktus,200,150
gezeichnet weil der nicht die Richtige Größe hat um in eine eigene Tilemap geladen zu werden...
Jetzt will ich dass der Held nicht durch den Kaktus durchlaufen kann sondern halt stehenbleibt.
Dafür hab ich diese Funktion eingebaut:
BlitzBasic: [AUSKLAPPEN]
Function collision(px,py,colide,cx,cy,richtung$)
If ImagesCollide(player,px,py,d,colide,cx,cy,0) Then
c=1
EndIf
If richtung$ = \"rechts\" Then
If Not c=1 Then
playerx=playerx+1
Else
playerx=playerx-1
c=0
EndIf
ElseIf richtung$ = \"links\" Then
If Not c=1 Then
playerx=playerx-1
Else
playerx=playerx+1
c=0
EndIf
ElseIf richtung$ = \"unten\" Then
If Not c=1 Then
playery=playery+1
Else
playery=playery-1
c=0
EndIf
ElseIf richtung$ = \"oben\" Then
If Not c=1 Then
playery=playery-1
Else
playery=playery+1
c=0
EndIf

EndIf
End Function

Ich wollte damit erreichen dass der Held wenn er gegen den Kaktus läuft einen Pixel zurückgestoßen wird, damit die Collision nicht wieder einsetzt.
Aber wenn ich jetzt weiterlaufen will kann es passieren, dass der Held in die entgegengesetzte Richtung läuft, als ich möchte, aber nur bis ich aus der "transparenzzone" des Kaktus raus bin...
Könnt ihr mir da irgendwie helfen?

skey-z

BeitragSa, Dez 17, 2005 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
das geht auch einfacher:

man nehme 2 weitere Varaibeln und nenne sie

old_pl_x
old_pl_y
(beispiel)

am Anfang oder am Ende der Schleife, übergibst du die aktuellen Koordianten an die beiden neuen, bzw(old_plx, old_pl_y)

wenn du nun möchtest, dass dein Spieler nach einer kollision garnicht mehr mit dem Tile kollidiert, dann mache eine weitere Abfrage hinein, mit rectsoverlap, oder imagerectcollide.
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group