Hi,
ich versuche mal aus Spaß ein kleines 2D Jump and Run zu programmieren.
Für den Anfang habe ich einmal eine ganz einfache Kollisionsabfrage gebaut, habe hier aber schon ein Problem.
Kann mir jemand helfen? Im Anhang hab ich mal einen Grundaufbau gehängt, wie ich mir das so grob vorstelle.
THX
ich versuche mal aus Spaß ein kleines 2D Jump and Run zu programmieren.
Für den Anfang habe ich einmal eine ganz einfache Kollisionsabfrage gebaut, habe hier aber schon ein Problem.
Kann mir jemand helfen? Im Anhang hab ich mal einen Grundaufbau gehängt, wie ich mir das so grob vorstelle.
THX
Brainfuck-Quellcode
- Public Function Kollisionsabfrage(ByVal t1 As Control, ByVal t2 As Control) As Boolean
- Dim sx, sy As Boolean
- 'sx = t1.Left - Geschwindigkeit <= (t2.Left + t2.Width) And (t1.Left + t1.Width + Geschwindigkeit) >= t2.Left
- sx = t1.Left <= (t2.Left + t2.Width) And (t1.Left + t1.Width) >= t2.Left
- '------------- Hier fehlt noch Geschwindigkeit -------------------
- sy = (t1.Top + t1.Height) >= t2.Top And t1.Top <= (t2.Top + t2.Height)
- 'Wenn True findet Kollision der 2 Objekte statt
- Kollisionsabfrage = sx And sy
- End Function
- Public Function Bewegung(ByVal Wagerecht As Integer, ByVal Senkrecht As Integer)
- 'a und bb wird nur als Zähler verwendet und ist nur in dieser Sub deklariert
- Dim a As Integer
- Do While a < AnzObjArray
- 'Hier trifft der Player auf ein Hindernis
- If Kollisionsabfrage(Mann, Hans(a)) = True Then
- Dim bb As Integer = 0
- 'Alles wieder eins in die andere Richtung bewegen
- Do While bb < AnzObjArray
- Hans(bb).location = New Point(Hans(bb).location.X + Wagerecht, Hans(bb).location.y)
- bb = bb + 1
- Loop
- Else
- 'Bewegung wenn keine Kollision statt findet
- Hans(a).location = New Point(Hans(a).location.X - Wagerecht, Hans(a).location.y)
- a = a + 1
- End If
- Loop
- End Function
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Wombe“ ()