TileMap sparsammes Scrolling

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

CodeFish

Betreff: TileMap sparsammes Scrolling

BeitragDi, Jun 20, 2006 10:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Irgendwie bekomm ich das mit dem Scrlling nicht so recht gebacken. Habn mal schnell simpelt Quelltext hochgeladen, kommaber grad nicht drauf, wie ich das am klügsten löse?

Kurze Beschreibung: Damit nicht die ganze Map von 100er oder 1000er TileGrösse gezeichnet wird, will ich mit einem kleinem Feld welches der Bildschirmgrösse entspricht scrollen, indem ich das kleine über das grosse bewege und ermittele welche Tiles im kleinen Liegen, diese an klein übertrage und nur diese zeichne. Habs erstmal im kleinen Format ohne Dateiladen oder stonstigen mist probiert.
Da das ebenfals nicht funzt hab ich es dan mit per Handzuweisung probiert, aber bekomms net so richtig gebacken, also wer sieht hir mal meinen denkfehler, komm da gerade nicht weiter.

Code: [AUSKLAPPEN]

; Einstellungen
Graphics 640,480
HidePointer
SetBuffer = BackBuffer()

Image = LoadAnimImage("TileSet.bmp",16,16,0,6)

; Daten

ScreenX = 640
ScreenY = 480
TileAni = 1
Dim Screen(7,7)
Dim Map (7,7)

Map (0,0) = 1
Map (0,1) = 1
Map (0,2) = 1
Map (0,3) = 1
Map (0,4) = 1
Map (0,5) = 2
Map (0,6) = 2

Map (1,0) = 2
Map (1,1) = 2
Map (1,2) = 2
Map (1,3) = 1
Map (1,4) = 2
Map (1,5) = 2
Map (1,6) = 1

Map (2,0) = 2
Map (2,1) = 2
Map (2,2) = 2
Map (2,3) = 1
Map (2,4) = 2
Map (2,5) = 1
Map (2,6) = 2

Map (3,0) = 2
Map (3,1) = 2
Map (3,2) = 1
Map (3,3) = 1
Map (3,4) = 1
Map (3,5) = 2
Map (3,6) = 1

Map (4,0) = 1
Map (4,1) = 1
Map (4,2) = 1
Map (4,3) = 1
Map (4,4) = 2
Map (4,5) = 1
Map (4,6) = 2

Map (5,0) = 2
Map (5,1) = 1
Map (5,2) = 1
Map (5,3) = 1
Map (5,4) = 2
Map (5,5) = 2
Map (5,6) = 1

Map (6,0) = 1
Map (6,1) = 1
Map (6,2) = 2
Map (6,3) = 1
Map (6,4) = 2
Map (6,5) = 1
Map (6,6) = 2

; Hauptprogramm

Repeat

   Cls
      
      ; laden
      
      Screen(0,1) = Map(1,2)
      Screen(0,2)   = Map(1,3)
      Screen(0,3) = Map(1,4)
      Screen(0,4) = Map(1,5)
      Screen(0,5) = Map(1,6)
      
      Screen(1,1) = Map(2,1)
      Screen(1,2)   = Map(2,2)
      Screen(1,3) = Map(2,3)
      Screen(1,4) = Map(2,4)
      Screen(1,5) = Map(2,5)
      
      Screen(2,1) = Map(3,1)
      Screen(2,2)   = Map(3,2)
      Screen(2,3) = Map(3,3)
      Screen(2,4) = Map(3,4)
      Screen(2,5) = Map(3,5)

      ; zeichnen

      For i = 0 To 2
         For g = 0 To 5
                  
            Select Map(i,g)
               Case 1 TileAni = 5
               Case 2 TileAni = 1
            End Select
            
            DrawImage Image,i*16,g*16,TileAni
            
         Next
      Next

   Flip

Until KeyHit(1)

End

DerHase

BeitragDi, Jun 20, 2006 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Kuck Dir DIES mal an, wenn Du dann noch fragen hast, dann frag hier einfach Smile
 

CodeFish

BeitragDi, Jun 20, 2006 11:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Besten Dank, genau sowas braucht ich gerade. Jetzt werd sich es sicher hinbekommen.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group