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
 
Hinweis
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: [ 1462 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Freitag, 30. September 2011