Tilemap Problem

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Dante

Betreff: Tilemap Problem

BeitragFr, Okt 15, 2004 11:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo.

Ich habe ein problem mit dem Tilemaping.
Die kollisionen klappen nicht richtig.

Kann jemand helfen??

Code: [AUSKLAPPEN]
Graphics 640,480
SetBuffer BackBuffer()

tiles = LoadImage("blocks.bmp")
player=LoadImage("player.bmp")

; Level von Festplatte lesen

Dim map(15,20)
leveldatei = ReadFile("level.txt")
For Zeile=0 To 14
A$ = ReadLine(leveldatei)
For Spalte=0 To 19
map(Zeile,Spalte) = Mid$(A$,Spalte+1,1)
Next
Next
CloseFile leveldatei

Global Player_pos_x = 32   
Global Player_pos_y = 32   

While Not KeyDown(1)
Cls

For Zeile=0 To 14
For Spalte=0 To 19
Select map(Zeile,Spalte)
Case "0"
DrawImageRect tiles, Spalte*32, Zeile*32, 36, 36, 32, 32
Case "1"
DrawImageRect tiles, Spalte*32, Zeile*32, 70, 274, 32, 32
End Select
Next
Next

If KeyDown(203) Then       
If map(Player_pos_x /32,(Player_pos_y +16) /32)=0 Then
Player_pos_x = Player_pos_x -4     
If Player_pos_x =< 0 Then Player_pos_x = 1       
EndIf
ElseIf KeyDown(205) Then
If map((Player_pos_x +32) /32,(Player_pos_y +16) /32)=0 Then
Player_pos_x = Player_pos_x +4
EndIf
ElseIf KeyDown(200) Then
If map((Player_pos_x +16) /32,Player_pos_y /32)=0 Then
Player_pos_y = Player_pos_y -4
EndIf       
ElseIf KeyDown(208) Then
If map((Player_pos_x +16) /32,(Player_pos_y +32) /32)=0 Then
Player_pos_y = Player_pos_y +4
EndIf       
EndIf
 
DrawImage player,Player_pos_x,Player_pos_y
Flip
Wend
End


level.txt
Code: [AUSKLAPPEN]
11111111111111111111
10000110000000010001
10110110110101110101
10110110000101110101
10000000110000000001
10110110000101101101
10110110110101101001
10000000000000001011
10110110111101111001
11110110111100001101
10000000000001100001
11110110101101101101
101101101011011011G1
10000000000000000001
11111111111111111111


Danke für jede hilfe Very Happy
 

David

BeitragFr, Okt 15, 2004 12:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Tipp: Verwende für solche Dinge doch Types. Ehrlich, es wird vieles einfacher dadurch!!! Rolling Eyes
Und Kollision kannst du dann z.B. mit ImageOverlap( [Tile][Player] ) oder RectOverlap( [TilePos][PlayerPos] ) machen!

Unter FAQ & Tutorial gibts ein paar nette Anleitungen und auf diversen bekannten BlitzBasic Homepages ebenfalls.

grüße
http://bl4ckd0g.funpic.de

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group