Sidescroller in VB6

Hallo Forum

ich möchte gern einen Sidescroller, also ein Spiel im klassischen jump&run Style basteln. Leider hab ich noch überhaupt keinen Schimmer, wie ich beginnen soll. Das gute ist erst mal, dass das Spiel komplett ohne Graphik auskommt, da es ein sogenantes Audiogame ist. Also einfach gesagt, man soll die zu überspringenden Schluchten nicht sehen, sondern nur hören können. Als Sound Engine verwende ich dx8. Für ein Paar tips, wie man so was beginnt, währ ich echt dankbar.

Liebe Grüße

Tschapajew

Hallo Tschapajew,

mir ist noch nicht komplett klar, was es werden soll. Mir fallen zwei Möglichkeiten ein.

1.) Die Position des Spielers verändert sich zeitabhängig.

2.) Die Position des Spielers wird über ein Eingabegerät vom Spieler bestimmt.

In Beiden Fällen würde ich in einer Liste die Positionen und die dazugehörigen Aktionen speichern, die Liste mit einem Zeiger lesen und ein Ereignis auslösen, wenn eine Aktion stattfinden soll.

Über DX-Sound weiß ich nichts, aber das scheinst Du ja schon zu haben.

Du brauchst dann also ein Programm zum Erzeugen des Levels, das die Daten sichert. Ob da eine Datenbank oder ein Textfile besser geeignet ist, hängt davon ab, wie Du Dir die Spielengine vorstellst.

Dann liest in einer Klasse ein Zeiger die Daten und löst die Ereignisse aus.

Gruß Rainer

Hallo

ja, es sollen aktionen abhängig von der position des spielers ausgelöst werden und der Spieler bewegt sich durch Tastendruck nach rechts oder links. Das mit der Liste hab ich noch nicht ganz, jedoch in groben Zügen verstanden. Könntest du mir dafür mal bitte ein Beispiel zeigen?

Gruß

Tschapajew

Hallo Tschapajew,

ein Beispiel, wie das aussehen könnte:
Ein neues Projekt, auf der Form liegt ein Timer: ‚Timer1‘.

Es gibt garantiert noch ein paar elegantere Lösungen, diese funktioniert aber auch schon. :smile:

Gruß Rainer

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Dim Feld(100) As Long, Snd(100) As String, Pos As Long, PMx As Long, Zeiger As Integer

Private Sub Form\_Load()
 Dim i As Integer, SW As Integer

 'Ich erzeuge per Zufall eine Liste.

 Randomize Timer
 For i = 0 To 100
 SW = Int(Rnd(1) \* 10) + 1
 Pos = Pos + SW
 Feld(i) = Pos
 Snd(i) = "Pfad zum entsprechenden Sound"
 Next
 PMx = Pos
 Pos = 0
 Zeiger = 1
 Timer1.Interval = 100
 Timer1.Enabled = True
End Sub

Private Sub Timer1\_Timer()
 If GetAsyncKeyState(37) Then
 Me.Caption = ""
 Pos = Pos + 1
 If Pos \> PMx Then Pos = PMx
 End If
 Auswertung
End Sub

Private Sub Auswertung()
 If Zeiger \> 1 Then
 If Pos Feld(Zeiger) Then
 'weiter zum nächsten Feld
 Zeiger = Zeiger + 1
 'Sound Snd(Zeiger) abspielen
 End If
 End If
End Sub