Viewport und kleine Tiles

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Kabelbinder

Sieger des WM-Contest 2006

Betreff: Viewport und kleine Tiles

BeitragMi, Okt 20, 2004 22:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ich habe mich mal mit zweigeteiltem Bildschirm mit Viewport auseinandergesetzt.
Wer will kann sich die Source ja mal runterladen:
http://home.arcor.de/platzverschwendung/Scroll.rar

Mir ist aufgefallen:
das Programm läuft irgendwie ziemlich langsam und das kann ja eigentlich nur am Viewport liegen. Ich habe das ganze auch mal für einen Spieler (dann natürlich auch ohne Viewport) gemacht und das lief sicher fast doppelt so schnell.

Ich habe mir überlegt, dass das vielleicht an den sehr kleinen Tiles, die ich genommen habe liegen könnte (20x20).

Kann es vielleicht sein, dass Viewport bei vielen kleinen Objekten sehr lang braucht?
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

hot-bit

Gast

BeitragDo, Okt 21, 2004 0:36
Antworten mit Zitat
Hi,

Kann mir das nicht vorstellen, da Kamikaze-Racer auch mit Viewport gemacht wurde. Und das war ja auch nicht so langsam ...

Toni

Kabelbinder

Sieger des WM-Contest 2006

BeitragDo, Okt 21, 2004 11:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich kenne Kamikaze Racer 8) , das ist auf der CD zum Buch, oder?
Bei Kamikaze Racer sind aber doch nicht so viele kleine Objekte. Bei meiner Source mit den 20x20 Tiles müssen immer 768 einzelne Tiles gezeichnet werden.
Also ich bin auf die Theorie gekommen, weil es, wenn man am Rand der Karte entlang läuft schneller läuft, weil dann wahrscheinlich weniger weniger Tiles eingeblendet werden müssen.

Also ich dachte, nicht, dass es allein an Viewport liegt, ich dachte es könnte vielleicht an der Kombination zwischen Viewport und den vielen Objekten liegen.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

hot-bit

Gast

BeitragDo, Okt 21, 2004 11:16
Antworten mit Zitat
Hi.

Hmm, ja, das könnte etwas bremsen.

Ich hatte doch nur eine 15*15 Map mit 32*32 Tiles. Also 225 Tiles zu zeichnen.
Und drumherum halt die Verkleidung und Punktestand, usw...

Probier mal mit der Hälfte der Tiles zu zeichnen, und check das mal, wie schnell das ist.
Es wird aber auch drauf ankommen, ob die Tiles über Types oder Arrays gesetzt werden...

Toni
 

BIG BUG

BeitragDo, Okt 21, 2004 11:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Naja, die Anweisung Viewport dürfte eigentlich kaum Speed ziehen.
Problematisch sind die vielen kleinen Tiles.
Wie HOT-BIT schon sagte solltest du nur das zeichnen, was auch tatsächlich gesehen wird(den verkleinerten Viewport berücksichtigen!).
Bei so kleinen Tiles solltest du die Map dann besser einmalig in eigene große Images zeichnen und nur diese jedes Frame zeichnen.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)
 

getlose

BeitragDo, Okt 21, 2004 12:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hab mit den Code mal eben angeschaut, kein Wunder warum
der so lahm ist :)

1. Du hast dim karte$(x,) geschrieben, weiter unten im
code prüfst du dann auch noch nach strings statt integers.

Code: [AUSKLAPPEN]

Select karte$(x,y)
Case "1"
DrawImage set,x*20-scrollx,y*20-scrolly,0
Case "2"
DrawImage set,x*20-scrollx,y*20-scrolly,1
Case "3"
DrawImage set,x*20-scrollx,y*20-scrolly,2
End Select


besser wäre einfach

Code: [AUSKLAPPEN]

gw=GraphicsWidth()/20
gh=GraphicsHeight()/20

Dim map(x,y)

;wird scrollx/y um 1 hoch/runter-gezählt 'bewegt' sich die
;map um ein ganzes Tile (in diesem Fall 20 Px ) weiter.

;gw/gh ist die bildschirmauflösung geteilt durch 20.
;so werden nur die Tiles gezeichnet die man wirklich sieht.

For x=scrollx To scrollx+gw
  For y=scrolly To scrolly+gh
    DrawImage set,(x-scrollx)*20,(y-scrolly)*20,map(x,y)
  Next
Next
 

hot-bit

Gast

BeitragDo, Okt 21, 2004 12:59
Antworten mit Zitat
Hoi..

Ohh, den Link hatte ich übersehen. Habs mir also gar nicht angeguckt.

Toni

Kabelbinder

Sieger des WM-Contest 2006

BeitragDo, Okt 21, 2004 14:14
Antworten mit Zitat
Benutzer-Profile anzeigen
OK, danke.
Ich hab dieses kleine Programm halt geschrieben, um das mit scrollbarer Tile-map schonmal zu üben (für mein nächstes Projekt Smile ).
Ich denke, ich nehme dann lieber 64x64er tiles, oder so.

@getlose_back:
Hey cool! ganz ohne if-Abfrage. Das werde ich dann wahrscheinlich auch im dem Spiel so machen.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group