Figur kollidiert mit Tileset

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Moundblack

Betreff: Figur kollidiert mit Tileset

BeitragDi, Okt 07, 2008 13:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
[b]Original:[/b]
If KeyDown(208) Then
        endx=startx
        endy=starty+1
 If endx > 0 And endy > 0 And endx < mapwidth And endy < mapheight Then
 If map(endx,endy) = 0 Then pathfinding0(endx,endy,startx,starty)
       EndIf
   EndIf
 If KeyDown(203) Then
            endx=startx-1
            endy=starty
 If endx > 0 And endy > 0 And endx < mapwidth And endy < mapheight Then
 If map(endx,endy) = 0 Then pathfinding0(endx,endy,startx,starty)
     EndIf
EndIf
 If KeyDown(205) Then
           endx=startx+1
           endy=starty
 If endx > 0 And endy > 0 And endx < mapwidth And endy < mapheight Then
 If map(endx,endy) = 0 Then pathfinding0(endx,endy,startx,starty)
     EndIf
 EndIf
 If KeyDown(200) Then
           endx=startx
           endy=starty-1
If endx > 0 And endy > 0 And endx < mapwidth And endy < mapheight Then
If map(endx,endy) = 0 Then  pathfinding0(endx,endy,startx,starty)
        EndIf
 EndIf

If goX*20 < (startX*20)+GoneX Then goRealX# = goRealX#-(1.0/FPS*40.0): Animfloat# = Animfloat# + (z#/FPS): Animframe = 9 + (Animfloat#/4)
If goX*20 > (startX*20)+GoneX Then goRealX# = goRealX#+(1.0/FPS*40.0): Animfloat# = Animfloat# + (z#/FPS): Animframe = 3 + (Animfloat#/4)
If goY*20 < (startY*20)+GoneY Then goRealY# = goRealY#-(1.0/FPS*40.0): Animfloat# = Animfloat# + (z#/FPS): Animframe = 0 + (Animfloat#/4)
If goY*20 > (startY*20)+GoneY Then goRealY# = goRealY#+(1.0/FPS*40.0): Animfloat# = Animfloat# + (z#/FPS): Animframe = 6 + (Animfloat#/4)
goneX = goRealX#
goneY = goRealY#
If goneX >=20 Then StartX = StartX+1:goRealX# = 0:gonex=0
If goneY >=20 Then StartY = StartY+1:goRealY# = 0:goney=0
If goneX <=-20 Then StartX = StartX-1:goRealX# = 0:gonex=0
If goneY <=-20 Then StartY = StartY-1:goRealY# = 0:goney=0
If Int(Animfloat#) >= 9 Then
z# = -40
ElseIf Int(Animfloat#) = 0 Then
z# = 40
ElseIf Int(Animfloat#) <= 2 Then
z# = 40
EndIf

If layer\name$ = "Player" Then

DrawImage spieler_img,(startx*20)+posx+gonex-map_scrollx,(starty*20)+posy+goney-mapscrolly
EndIf



[b]geändert:[/b]
If KeyDown(200) Then
       x#= x# + Cos(w)
       y# = y# +Sin(w)
       x#= endx
       y#= endy




If endx > 0 And endy > 0 And endx < mapwidth And endy < mapheight Then
If map(endx,endy) = 0 Then  pathfinding0(endx,endy,startx,starty)
     EndIf
 If KeyDown(205) Then W= W + 1

If KeyDown(203) Then W = W - 1

If W < 0 Then W = 360
If W > 360 Then W= 0



If goX*20 < (startX*20)+GoneX Then goRealX# = goRealX#-(1.0/FPS*40.0)
If goX*20 > (startX*20)+GoneX Then goRealX# = goRealX#+(1.0/FPS*40.0)
If goY*20 < (startY*20)+GoneY Then goRealY# = goRealY#-(1.0/FPS*40.0)
If goY*20 > (startY*20)+GoneY Then goRealY# = goRealY#+(1.0/FPS*40.0)
goneX = goRealX#
goneY = goRealY#
If goneX >=20 Then StartX = StartX+1:goRealX# = 0:gonex=0
If goneY >=20 Then StartY = StartY+1:goRealY# = 0:goney=0
If goneX <=-20 Then StartX = StartX-1:goRealX# = 0:gonex=0
If goneY <=-20 Then StartY = StartY-1:goRealY# = 0:goney=0

EndIf

If layer\name$ = "Player" Then


DrawImage spieler(w),x#+posx+gonex-map_scrollx,y#+posy+goney-mapscrolly
EndIf




so beim original läuft meine figur ja auf tiles und kollidiert dann mit anderen tiles, auf denen meine figur nicht laufen kann, das klappt ja auch super. Smile
Beim geänderten sieht das schon anders aus, meine Figur dreht sich und soll nicht gleichmäßig mit den Tiles laufen, meine Figur soll laufen wie sie soll, aber wenn sie gegen eine Mauer läuft, überläuft sie die einfach obwohl sie eigentlich mit ihnen kollidieren soll, das ja beim Original super klappt. Es wäre eine große Hilfe für mich wenn ihr mir helfen könntet. Ich glaube Jan_ würde davon am meisten verstehen, weil die mapengine von ihm ist Cool

Jan_

Ehemaliger Admin

BeitragDi, Okt 07, 2008 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal im Blindflug

Code: [AUSKLAPPEN]
[b]geändert:[/b]

altx#=x#
alty#=y#

If KeyDown(200) Then
       x#= x# + Cos(w)
       y# =y# +Sin(w)
endif
If KeyDown(208) Then
       x#= x# - Cos(w)
       y# =y# - Sin(w)
endif

If KeyDown(205) Then W= W + 1

If KeyDown(203) Then W = W - 1

If x# > 0 And y# > 0 And x# < mapwidth*32 And y# < mapheight*32 Then
   If not(map(x#/32,y#/32) = 0) Then
      x# = altx#
      y# = alty#
   endif
EndIf

If layer\name$ = "Player" Then
   DrawImage spieler(w),x#-map_scrollx,y#-mapscrolly
EndIf
between angels and insects

Moundblack

BeitragDo, Okt 09, 2008 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
ich habe eine mauer um mein tileset gezeichnet, auf die meine figur läuft. Die Figur kolliedert mit der unteren Wand und mit der rechten Wand (alles schön und gut Rolling Eyes ), aber die obere wand und die linke wand, da kann meine figur drauf gehen, aber sie soll schon ein Tile vorher mit der Mauer kollidieren

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group