Sichtbaren berreich Zeichnen

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Cykid

Betreff: Sichtbaren berreich Zeichnen

BeitragFr, Okt 14, 2011 14:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Heyho =)
Ich habe da mal ne Frage und zwar habe ich ne Tilemap die man allerdings nicht vollstaendig sieht und durch ihre Größe doch deutlich an Leistung frisst, meine Frage ist nun wie schaffe ich es Rechnerrisch nur den sichtbaren Bereich zu zeichnen?

Bin für jede Hilfe dankbar =)

lg Cykid

BaseTH

BeitragFr, Okt 14, 2011 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo Cykid,

du prüfst einfach ob die Tiles die du zeichnen möchtest in dem sichtbaren Bereich des Bildschirmes sind.

Du könntest z.B. testen ob die X-Koordinate des Tiles = oder größer als 0 ist und ob diese auch kleiner als die Bildschirmbreite ist.

Für die Y-Koordinate musst du dann natürlich auch eine Prüfung einbauen.

Gruß,
BaseTH

ZEVS

BeitragFr, Okt 14, 2011 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kommt darauf an, wie du die internen Scrollvariablen verteilst.
Prinzipiell musst du dir einfach die X-Werte der Tiles ganz links auf dem Bildschirm und die Y-Werte der Tiles ganz oben ausrechnen. Danach beschränkst du die Zeichenschleife auf diese Minima und lässt sie nach rechts/unten nur bis Minimum+Anzahl der sichtbaren Tiles zeichnen.
Je nach dem, ob du das Scrollen in Tiles oder Pixeln angibst, musst du evtl. vorher durch die Höhe/Breite eines Tiles dividieren:
BlitzBasic: [AUSKLAPPEN]
;evtl:
ScrollOffsetXTiles = ScrollOffsetXPixels/TileWidth
ScrollOffsetYTiles = ScrollOffsetYPixels/TileHeight
ScreenWidthTiles = ScreenWidthPixels/TileWidth
ScreenHeightTiles = ScreenHeightPixels/TileHeight
;und dann:
For x=ScrollOffsetXTiles To ScollOffsetXTiles+ScreenWidthTiles
For y=ScrollOffsetYTiles To ScollOffsetYTiles+ScreenHeightTiles
DrawTile x, y
Next
Next

wobei DrawTiles natürlich die Scrollvariablen miteinbezieht.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group