Tilemap ruckelt

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Gameprogman

Betreff: Tilemap ruckelt

BeitragFr, Sep 28, 2007 23:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Also, ich habe eine Tilemap (30*30) in Dims gespeichert:
Code: [AUSKLAPPEN]

Dim map(30,30)
...
For i=0 To 30
   For y=0 To 30
      map(i,y)=ReadByte(d)
   Next
Next


Hier sollte es kein problem geben. Will ich die map jedoch zeichnen, beginnt das Spiel zu ruckeln.

Code: [AUSKLAPPEN]

Function showmap()
   TileImage tiles,scrx,scry,3    ;Hintergrund, außerhalb der map
   For i=0 To 30
         For y=0 To 30
            If y*64+(scry+1)>0 And y*64+(scry-1)<768 And i*64+(scrx+1)>0 And i*64+(scrx-1)<1024 Then   ;nur zeichnen was sichtbar ist
               DrawImage tiles,i*64+scrx,y*64+scry,map(i,y):Color 0,0,0
         Rect i*64+scrx,y*64+scry,64,64,0     ;Raster
      EndIf
   Next
   Next
End Function

Ich bin mir 100% sicher das es an dem Zeichnen der Map liegt, denn wenn ich die map nicht zeichne ruckelt es auch nicht mehr, nur weiß ich nicht was soviel aufwand für meinen PC macht. (Gut, ich hab nicht das beste equptment jedoch müssten 2.5Ghz und 700irgendwas MB ram reichen oder? Wink )

thx und mfg
www.bandradr.de ! Awesome !
 

Dreamora

BeitragFr, Sep 28, 2007 23:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt keinen Grund das das ruckeln sollte.
Da muss wohl deine Verwendung von der Funktion ziemlichen mist machen fürchte ich.

Und allgemein: RAM is nice, aber die Grafikkarte ist meist mehr von bedeutung als der RAM in Blitz
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Gameprogman

BeitragSa, Sep 29, 2007 11:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab ne Geforce7600 256MB, was aber jetzt auch egal ist, da ich gestern noch nach ewigen probieren den Fehler gefunden hab: Rect scheint sehr langsam zu sein. denn wenn ich kein Raster mehr zeichne hört es auf zu ruckeln.
www.bandradr.de ! Awesome !

kriD

Betreff: raster

BeitragSo, Sep 30, 2007 9:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi..
mach doch dein raster als image mit transparentem hintergrund, das du denn nur einmal zeichen musst.. sollte enormen speedzuwachs geben..
dann kannst du vlt auch noch die for-schleife nur die sichtbaren tiles durchlaufen lassen, anstat inner for-schleife ne If-abfrage zu machen.. (das sollte allerdings nich gaanz soviel bringen..)

MfG kriD
Wenn ich du wäre, wäre ich lieber ich!

Gameprogman

BeitragSo, Sep 30, 2007 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Gute Idee... werd ich ausprobieren. Thx
www.bandradr.de ! Awesome !
  • Zuletzt bearbeitet von Gameprogman am So, Sep 30, 2007 10:20, insgesamt einmal bearbeitet

Lunatix

BeitragSo, Sep 30, 2007 10:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Dabei allerdings nicht jedes Tile auf sichtbarkeit prüfen, sondern ab Bildschirmmitte+Breite/2 ; -Breite/2 ; +Höhe/2 ; -Höhe/2 zeichnen.
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen...

Gameprogman

BeitragSo, Sep 30, 2007 10:24
Antworten mit Zitat
Benutzer-Profile anzeigen
Auf meiner Tilemap scrollt man immer um die größe eines tiles, also brauch ich im prinzip nur das raster darüberlegen ohne es zu bewegen Wink
www.bandradr.de ! Awesome !

ZaP

BeitragSo, Sep 30, 2007 10:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Hast du vielleicht nicht doublebuffering an? Arrow SetBuffer Backbuffer()
Starfare: Worklog, Website (download)

Gameprogman

BeitragSo, Sep 30, 2007 10:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Gameprogman hat Folgendes geschrieben:
Hab ne Geforce7600 256MB, was aber jetzt auch egal ist, da ich gestern noch nach ewigen probieren den Fehler gefunden hab: Rect scheint sehr langsam zu sein. denn wenn ich kein Raster mehr zeichne hört es auf zu ruckeln.


Problem wurde bereits gefunden, aber trotzdem danke. Wink
www.bandradr.de ! Awesome !

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group