Tiles Problem - Kollidieren

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

azureuz

Betreff: Tiles Problem - Kollidieren

BeitragMi, Aug 11, 2004 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hi,
ich habe ein problem mit den tiles. wenn ich mit meinem BILD(char) nach links oder nach oben gehe, dann bleibt er stehen(beim schwarzen). Wenn ich nach rechts oder nach unten gehe, geht er einfach weiter. wo ist der fehler im code?

achja...mein char hat nen 0,0,255 bg und ist schwarz. aber wenn ich dann über das bild gehe, wird das schwarze durchsichtig?

Code: [AUSKLAPPEN]
Graphics 1024,768,32,3
SetBuffer BackBuffer() 

tileset = LoadAnimImage("gfx/tiles.bmp",32,32,0,2)
char = LoadImage("gfx/stick1.bmp")


px = 20

py = 20

move = 1


Dim map(31,23)

Data 1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,1,1,1,1,1,1,1,1,1,1,1

For y = 0 To 23 
For x = 0 To 31
Read map(x,y)
Next 
Next

Repeat 

Cls

If KeyDown(1) Then End 

For y = 0 To 23 
For x = 0 To 31
DrawImage tileset,x*32,y*32,map(x,y) 
Next
Next 

If KeyDown(208) Then

If map(px,py+1) < 1 Then

py = py + 1

move = 1
End If
End If

If KeyDown(200) Then
If map(px,py-1) < 1 Then
py = py - 1
move = 1
End If
End If

If KeyDown(203) Then
If map(px-1,py) < 1 Then
px = px - 1
move = 1
End If
End If

If KeyDown(205) Then
If map(px+1,py) < 1 Then
px = px + 1
move = 1
End If
End If

If move = 1 Then x = px * 32: y = py * 32:DrawImage char,x,y

Flip 
Forever

Holzchopf

Meisterpacker

BeitragMi, Aug 11, 2004 19:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Das mit dem Schwarz das durchsichtig wird: Schau dir mal die Hilfe zum Befehl MaskImage an...

Dass der Char durch die "Wände" geht, erklär' ich mir mal damit, dass dein Char ganz einfach zu gross ist (grösser als 32x32).

Ausserdem ist die Variable 'move', sobald sie einmal 1 ist, immer 1, also bräuchtest du deren Abfrage ja eigentlich gar nicht...
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm
 

azureuz

BeitragMi, Aug 11, 2004 20:06
Antworten mit Zitat
Benutzer-Profile anzeigen
da fällt mir ein...stimmt! die größe in der datei stimmt nicht mit der von meinem image überein! danke! Smile

p.s.
die bilder in deiner sig.,woher hast du die? selbst gemacht?

p.s.
will doch nicht...mist!
 

azureuz

BeitragFr, Aug 13, 2004 17:29
Antworten mit Zitat
Benutzer-Profile anzeigen
achja...das will immernoch nicht...nur so nebenbei Very Happy

Markus2

BeitragFr, Aug 13, 2004 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Graphics 1024,768,16,2
SetBuffer BackBuffer()

px = 20
py = 20

Dim map(31,23)

Data 1,1,1,1,1,1,1,1,1,1,1,1,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,1,1,1,1,1,1,1,1,1,1,1,1

For y = 0 To 23
For x = 0 To 31
Read map(x,y)
Next
Next

Repeat

Cls

If KeyDown(1) Then Exit

For y = 0 To 23
For x = 0 To 31
 Select map(x,y)
 Case 1
  Color 128,128,128
 Default
  Color 0,0,0
 End Select
 Rect x*32,y*32,32,32
Next
Next

If KeyDown(208) Then
 If map(px,py+1) < 1 Then  py = py + 1
End If

If KeyDown(200) Then
 If map(px,py-1) < 1 Then  py = py - 1
End If

If KeyDown(203) Then
 If map(px-1,py) < 1 Then px = px - 1
End If

If KeyDown(205) Then
 If map(px+1,py) < 1 Then px = px + 1
End If

 x = px * 32: y = py * 32
Color 255,255,0
Rect x,y,32,32

Flip
Forever
End

 

azureuz

BeitragFr, Aug 13, 2004 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
hmmm...aber nun sind die bilder weg?!

und das bild muss auf 160*160 sein!

ViciouS

BeitragFr, Aug 13, 2004 19:20
Antworten mit Zitat
Benutzer-Profile anzeigen
???
Die Bilder sind weg, weil in Markus code keine Bilder vorkommen....
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren...
und es werden mehr Laughing
 

azureuz

BeitragFr, Aug 13, 2004 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
ich weiß...aber irgendwie kann ich heute abend nicht denken ---> hab momentan keinen plan wie ich die bilder wieder richtig rein mache ^^

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group