IT-Academy Logo
Sign Up Login Help
Home - Programmieren - Visual Basic - Background Scrolling in VB



Background Scrolling in VB

Dieser Artikel zeigt wie man Background Scrolling in Computerspielen benutzt. Die Programmiersprache ist Visual Basic.


Autor: Tobias Surmann (incsoft)
Datum: 31-03-2003, 13:19:03
Referenzen: http://www.vbDirectX.de
Schwierigkeit: Profis
Ansichten: 3789x
Rating: 7 (1x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

Beim Background Scrolling lässt man eine Hintergrundgrafik über den Bildschirm laufen, z. B. von links nach rechts, von oben nach unten usw. Dabei muss die Bitmap, in der sich die Grafik befindet, größer als die primäre Surface sein. Aus der Hintergrundgrafik werden dann die darzustellenden Teile ausgeschnitten und auf die primäre Surface geblittet.



Dazu ein Beispiel:

Unsere Hintergrundgrafik hat die Ausmaße 200x200. Bei der Initialisierung vergrößern wir diese durch Dehnen auf die Größe des Backbuffers:

Public Sub Init() 

... 

ddsdBG.lFlags = DDSD_CAPS Or DDSD_WIDTH Or DDSD_HEIGHT 

ddsdBG.ddsCaps.lCaps = DDSCAPS_OFFSCREENPLAIN Or DDSCAPS_SYSTEMMEMORY 

ddsdBG.lHeight = ddsdBackBuffer.lHeight 

'Die Breite der Hintergrundgrafik wird sogar verdoppelt! 
ddsdBG.lWidth = ddsdBackBuffer.lWidth * 2 

'RECT der Hintergrundgrafik setzen 

rBG.Bottom = ddsdBG.lHeight 

rBG.Right = ddsdBG.lWidth / 2 

... 

End Sub 

Jetzt können wir in der gameLoop-Prozedur die Position des Hintergrundbildes verändern. So erreichen wir eine Verschiebung von rechts nach links:


Public Sub gameLoop()

...

Do Until gamerunning = False

If direction Then

rBG.Left = rBG.Left + 1

rBG.Right = rBG.Right + 1

If rBG.Right > 630 Then direction = Not direction

'Nach Erreichen des Bildschirmrands soll der 
'Hintergrund in die entgegengesetzte Richtung scrollen:

Else

rBG.Left = rBG.Left - 1

rBG.Right = rBG.Right - 1

If rBG.Left < 10 Then direction = Not direction

End If

...

Loop

End Sub


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06243
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1144
Comments: 0