Spieler wird net übermalen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

girgl

Betreff: Spieler wird net übermalen

BeitragDo, Jan 08, 2004 14:24
Antworten mit Zitat
Benutzer-Profile anzeigen
servus,ich hab ne spielfigur und ne map mit 3 verschiedenen layern,einen für boden,einen für kollision und einen unter dem man mit seiner spielfigur durchlaufen kann.Die spielfigur wird direkt nach dem untersten layer gezeichnet aber komischerweise wird die spielfigur net übermalen wenn ich auf einem feld bin,das sauf nem höheren layer gezeichnet wird,sondern die spielfigur wird immer drübergezeichnet,egal welcher layer.
Hier is der Code für des Zeichnen der map und figur
Code: [AUSKLAPPEN]
Function DrawMap()
For i=0 To maph-1
 For j=0 To mapb-1
  DrawImage tset,j*16,i*16,BodenLayer(j,i)
   DrawImage soldat,player\x,player\y,player\cframe
  If KoliLayer(j,i)<>436 Then DrawImage tset,j*16,i*16,KoliLayer(j,i)
  If ObenLayer(j,i)<>436 Then DrawImage tset,j*16,i*16,ObenLayer(j,i)
 Next
Next
End Function

Holzchopf

Meisterpacker

BeitragDo, Jan 08, 2004 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Du zeichnest drum den Spieler in jedem Schleifendurchgang. Am einfachsten ist es, wenn du zweimal solche Schleifen machst, in der ersten nur den bodenlayer, danach den Soldaten, und dann wieder die Schleifen für den Koli- und Obenlayer

MfG
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
 

girgl

BeitragDo, Jan 08, 2004 19:32
Antworten mit Zitat
Benutzer-Profile anzeigen
danke holzchopf,klappt
aber wo lag jetz der fehler?Darf ich den spieler net in der schleife zeichnen in der ich die layer zeichne oder zeichnet ma prinzipiel jeden layer in ner extra funktion oder schleife?

Holzchopf

Meisterpacker

BeitragDo, Jan 08, 2004 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ne der Fehler liegt darin, dass du ja alle Tiles von obenlinks nach untenrechts mit diesen Schleifen malst, so wie du es oben hattest, hast du zudem den Spieler bei jedem Durchgang wieder gezeichnet (also (BREITExHOEHE) mal Wink) und der steht ja immer fest auf seiner Position wärend der Schleife.
Nehmen wir also mal an, der Spieler steht genau auf Tile X4, Y3 und du zeichnest eine Map von X 8 Tiles und Y 8 Tiles:
In dem Moment, wo die Schleifendurchgänge auf Tile X4 und Y3 treffen, wird korrekterweise das Tile über dem Spieler gezeichnet, danach geht die Tilezeichnung allerdings bei X5, Y3 weiter. Der Fehler ist nun der, dass auch bei diesem Durchgang der Spieler wieder gezeichnet wird, und zwar wieder an Position X4, Y3, wo er das eben gemalte Tile übermalt, das passiert dann auch bei den restlichen Tiles von den total 8x8. Daraus lässt sich auch der Schluss ziehen: Steht bei der Variante oben der Spieler genau in der unteren rechten Ecke, wird das Tile von keinem Spieler mehr überschrieben (da ja kein weiterer Schleifendurchgang folgt).

Ich hoffe das ist verständlich und ausführlich genug geschrieben Smile
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
 

girgl

BeitragDo, Jan 08, 2004 20:34
Antworten mit Zitat
Benutzer-Profile anzeigen
ajo war ausführlich genug.
thx

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group