ausserhalb des Bildschirms NICHT zeichnen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Till P.

Betreff: ausserhalb des Bildschirms NICHT zeichnen

BeitragSa, Jun 12, 2004 19:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ich arbeite gerade an einem rpg und hab halt diese tile-zeichnen mit
Code: [AUSKLAPPEN]

for y=0 to mapy-1
  for x=0 to mapx-1
    drawblock map(x,y)
  next
next

meine frage ist jetzt, wie man davon alle tiles ausschließen kann, die nicht sichtbar sind, um speed zu gewinnen und größere maps zu ermöglichen...

Für Hilfe oder Anregungen wär ich dankbar!

mfg
Till

rambo256

BeitragSa, Jun 12, 2004 19:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Führ eine Variable für jedes tile ein,das bestimmt ob es gezeichnet werden soll.
Dann musst du mit einer funktion die abfragen,welche tiles auf dem bildschirm sind.Ich stell mir das so vor:
du hast ja die Player_Map_X und der Player müsste eigentlich immer in der mitte deds bildschirmes sein.
Dann musst du gucken wie viele Tiles links von ihm und rechts von ihm befinden.Das gleiche machst du mit Player_Map_Y.
Dann kannst du damit die "Anzeigen?"-Variablen der einzelnen Tiles
bestimmen und zeichnen lassen.
Asus F53z

Das Leben ist eine reine Konkatenation...
 

furbolg

BeitragSa, Jun 12, 2004 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

for y=0 to mapy-1
  for x=0 to mapx-1
    drawblock map(x,y)
  next
next
<< falsch

local sh,sw
sh = ScreenHeight()
sw = ScreenWidth()

for y = scroll_y / tile_size to (scroll_y + sh) / tile_size
for x = scroll_x / tile_size to (scroll_x + sw) / tile_size
draw.....
next
next

dann darfst du mit scroll_y / x aber nicht unter 0 und nicht über mapx/y - 1 kommen, sonst gibts error ;)
 

Till P.

BeitragSo, Jun 13, 2004 13:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Jau danke, funktioniert! Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group