fb:porticula NoPaste
10.3: Parallax Scrolling
| Uploader: |  nemored | 
| Datum/Zeit: | 29.10.2011 00:47:42 | 
Hinweis: Dieser Quelltext ist Bestandteil des Projekts OpenBook: 2D-Spieleprogrammierung, zu dem es auf FreeBASIC-Portal.de eine Projektseite gibt.
' *** CODE 10.3: Parallax Scrolling
DIM AS INTEGER bildbreite = 400, bildhoehe = 300
SCREENRES bildbreite, bildhoehe, 32
DIM AS ANY PTR ebene(1 TO 3)                 ' Bildspeicher der Ebenen
DIM AS INTEGER zaehler = 0, i
DIM AS INTEGER b(1 TO 3) = { 900, 900, 900 } ' Breite der Ebenen
DIM AS INTEGER posX(1 TO 3) = { 0, 0, 0 }    ' Position innerhalb der Ebenen
DIM AS INTEGER schnell(1 TO 3) = { 8, 3, 1 } ' Geschwindigkeit der Ebenen
' Ebenen laden
FOR i = 1 TO 3
  ebene(i) = IMAGECREATE(b(i) + bildbreite, bildhoehe)
  BLOAD "ebene" & i & ".bmp", ebene(i)
  ' Stueck des linken Randes an den rechten Rand anhaengen
  PUT ebene(i), (b(i),0), ebene(i), (0,0)-STEP(bildbreite-1,bildhoehe-1), PSET
NEXT
DO
  ' neue Position der Ebenen bestimmen
  zaehler += 1
  FOR i = 1 TO 3
    IF (zaehler MOD schnell(i)) = 0 THEN posX(i) += 1
    ' Wenn das Ende der Ebene erreicht ist, an den Anfang zurueckkehren
    IF posX(i) >= b(i) THEN posX(i) -= b(i)
  NEXT
  ' Ebenen zeichnen
  SCREENLOCK
  FOR i = 1 TO 3
    PUT (0,0), ebene(i), (posX(i),0)-STEP(bildbreite-1,bildhoehe-1), TRANS
  NEXT
  SCREENUNLOCK
  SLEEP 1
LOOP UNTIL INKEY <> ""
' Speicher bereinigen
FOR i = 1 TO 3
  IMAGEDESTROY ebene(i)
NEXT
	


			FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!



