Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

10.3: Parallax Scrolling

Uploader:Redakteurnemored
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