AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Rotierendes Array

Ein Thema von Igotcha · begonnen am 12. Jul 2004 · letzter Beitrag vom 14. Jul 2004
 
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#1

Rotierendes Array

  Alt 12. Jul 2004, 13:40
Hallo zusammen,

im Rahmen der Programmierung eines Spiels (nicht mit Delphi) stoße ich auf ein Problem, welches mir wirklich Kopfzerbrechen bereitet.

Realisiert werden soll ein von oben nach unten scrollender Sternenhintergrund. Dazu habe ich mir 4 "Tiles" á 64x64 Punkte erstellt, die dann bei einer 1024x768 Auflösung in 12 Zeilen zu 16 Spalten in einem Array liegen. Aus programmtechnischer Sicht benötige ich natürlich eine 13. Zeile im oberen nicht-sichtbaren Bereich, der ja reingescrollt wird.

Nehmen wir mal diesen Code, um das BGMAP-Array zu füllen:

Code:
FOR iY=0 TO 12     
   FOR iX=0 to 15       
       BGMAP(iX,iY)=RND(3)
   NEXT iX
NEXT iY

So, jetzt gibt es die "Game-Loop", die den Hintergrund forwährend scrollt:

Code:
DO
FOR iY=0 TO 12
   FOR iX=0 to 15
      PASTE IMAGE BGMAP(iX,iY),(iX*64),(iY*64)+iStarScroll
   NEXT iX
NEXT iY
 
   INC iStarScroll
   IF iStarScroll>64
      iStarScroll=0
   ENDIF
SYNC
LOOP
Damit werden die Tiles kontinuierlich auf dem Screen gezeichnet und anschließend wird der Y-Wert zum Pasten um 1 Pixel erhöht, bis die nicht-sichtbare Reihe von oben vollständig im Screen ist (nach 64 Pixeln) - funktioniert auch soweit.

Jetzt kommt aber das Problem:

Sobald ein Umlauf von 64 Pixeln erfolgt ist, muss ich die unten rausgescrollte Zeile natürlich wieder oben anfügen und da hakt es im Moment...

Zur Verdeutlichung, wie es sein müsste (die angegebenen Werte beziehen sich auf den Y-Wert im Array BGMAP - momentan noch iY):

1. Durchlauf
0,1,2,3,4,5,6,7,8,9,10,11,12

2. Durchlauf
12,0,1,2,3,4,5,6,7,8,9,10,11

3. Durchlauf
11,12,0,1,2,3,4,5,6,7,8,9,10
usw.

Da ich das Array selbst nicht anfassen möchte, suche ich einen Weg, dieses im Code zu realisieren, also irgendwie mathematisch ein "rotieren" des Arrays in der Schleife abzubilden.

Gruß Igotcha
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:17 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz