![]() |
Tipp 0186
|
Grundlagen für Tilebased-Spiele
|
 |
|
Autor/Einsender: Datum: |
|
Alexander Csadek 13.01.2002 |
|
Entwicklungsumgebung:
DirectX-Version: |
|
VB 6
DirectX 7 |
|
|
Sicher wollte schon jeder Hobby-Game-Programmierer einmal ein kleines Spiel auf Basis von Tiles (Kacheln),
wie z.B. Siedler, machen, aber meist scheitert es schon am Beginn bei der Frage "wie macht man das...".
Diese Beispiel zeigt ein wenig die Grundlagen zu einem TileBased-Game, egal welchen Genres.
|
So z.B. wie man die Map (das gesamte Level von einem Spiel) auf den Bildschirm bringt. Wie man mit der Maus scrollt und dabei auch noch feststellen kann, auf welche Map-Koordinate die Maus zeigt.
|
Natürlich gibt es noch viel viel mehr bei einem TileBased-Spiel, aber mit den hier gezeigten Funktionen sollte die Anfangs-Hürde leicht genommen werden können.
|
Der abgebildete Code bezieht sich nur auf die eigentliche Funktion. Da der Code für die Initialisierung von
DirectX meist immer gleich bleibt, wurde dieser hier nicht gesondert abgebildet.
|
|
Code im Codebereich des Moduls |
|
|
Option Explicit
Public Function TilePlotter(Map As strcPoint) As strcPoint
TilePlotter.x = Map.x * TileBreiteHoehe
TilePlotter.y = Map.y * TileBreiteHoehe
End Function
Public Sub ClipScreenAnchor()
If ScreenAnchor.x < AnchorSpace.Left Then _
ScreenAnchor.x = AnchorSpace.Left
If ScreenAnchor.y < AnchorSpace.Top Then _
ScreenAnchor.y = AnchorSpace.Top
If ScreenAnchor.x > AnchorSpace.Right Then _
ScreenAnchor.x = AnchorSpace.Right
If ScreenAnchor.y > AnchorSpace.Bottom Then _
ScreenAnchor.y = AnchorSpace.Bottom
End Sub
Public Function GetMouseTile(ByVal mx As Long, _
ByVal my As Long) As strcPoint
Dim MapCoarse As strcPoint
mx = mx + ScreenAnchor.x
my = my + ScreenAnchor.y
MapCoarse.x = mx \ TileBreiteHoehe
MapCoarse.y = my \ TileBreiteHoehe
GetMouseTile = MapCoarse
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 (117
kB)
|
Downloads bisher: [ 1856
]
|
|
|