|
Tipp 0238
|
DirectDraw - Regen
|
|
|
Autor/Einsender: Datum: |
|
Alexander Csadek 21.05.2002 |
|
Entwicklungsumgebung:
DirectX-Version: |
|
VB 6
DirectX 7 |
|
|
Mit wenigen Zeilen zeigt dieser Tipp, wie man mit DirectDraw Regen in unterschiedlicher Regenmenge, Regentropenlänge und Geschwindigkeit realisieren kann. Hierzu wird einfach die DirectDraw-Funktion
DrawLine verwendet.
|
Der abgebildete Code bezieht sich nur auf die Funktion Regen. Da u.a. der Code für die Initialisierung von
DirectX meistens gleich bleibt, wird dieser hier nicht mehr gesondert abgebildet. Das Download-Beispiel enthält jedoch das komplette Projekt.
|
|
|
Option Explicit
Dim Regensetzen As Boolean
Private Type Regen
x As Long
y As Long
Geschw As Single
End Type
Dim Regen(1000) As Regen
Dim Regenlänge As Integer
Dim RegenSpeed As Integer
Dim RegenAnzahl As Integer
Dim Eigenschaft As Single
Function Regnen(Anzahl As Integer, Geschwindigkeit As Integer)
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim I As Integer
Dim x2 As Long
If Regensetzen = False Then
Randomize
For I = 0 To Anzahl
x = Rnd * 800
y = Rnd * 600
z = Rnd * Geschwindigkeit
Regen(I).x = x
Regen(I).y = y
Regen(I).Geschw = z + Geschwindigkeit
BackBuffer.SetForeColor vbWhite
BackBuffer.DrawLine Regen(I).x, Regen(I).y, Regen(I).x, _
Regen(I).y + Regenlänge
Next I
Regensetzen = True
End If
For I = 0 To Anzahl
Regen(I).y = Regen(I).y + Regen(I).Geschw
BackBuffer.DrawLine Regen(I).x, Regen(I).y, Regen(I).x, _
Regen(I).y + Regenlänge
If Regen(I).y > 600 Then
x = Rnd * 800
y = Rnd * 600
z = Rnd * Geschwindigkeit
Regen(I).x = x
Regen(I).y = 0
Regen(I).Geschw = z + Geschwindigkeit
BackBuffer.DrawLine Regen(I).x, Regen(I).y, Regen(I).x, _
Regen(I).y + Regenlänge
End If
Next I
End Function
|
|
|
|
|
|
Um dieses Beispiel ausführen zu können, wird die DirectX 7
for Visual Basic Type Library
benötigt (siehe dazu die Erläuterungen in der DirectX-Rubrik).
|
|
Windows-Version |
95 |
|
|
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
VB-Version |
VBA 5 |
|
|
VBA 6 |
|
|
VB 4/16 |
|
|
VB 4/32 |
|
|
VB 5 |
|
|
VB 6 |
|
|
|
|
Download (172
kB)
|
Downloads bisher: [ 2378
]
|
|
|