Hi Leute, ich hab mir mal ein paar gedanken gemacht wie man am einfachsten eine Kollisionserkennung in VB 08 Programmiert, und das ist dabei rausgekommen:
Und so Funktionierts:
Ihr malt eine Kollisionsmap mit den Farben Schwarz und Weiß, die Farbe schwarz stellt hindernisse da, die Farbe Weiß stellt den 'weg' da. z.B. so:
diese Kollisionsmap macht ihr bei eurem Form als Hintergrund bild.
Jetzt braucht ihr noch die designmap, die stellt alle designs da z.B. pflanzen bäume etc. zb. so:
Jetzt fügt ihr eurem Form noch ein Panel hinzu, bei der Dock eigenschaft stellt ihr Fill ein. bei Backgroundimage benutzt ihr die Designmap.
als letztes benutzt ihr noch eine Picturebox in der größe 25x25 pxl, das wird der Spieler sein.
das Quadrat bewegt sich zwar nur langsam aber das kann man ja noch verbessern^^
ich hoffe ihr könnt damit etwas anfangen, have fun
lg.
VB.NET-Quellcode
- 'Kollisionserkennung by Freakstar
- Public Class Form1
- 'Bodenkollision
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
- Dim BMAP As Bitmap = Me.BackgroundImage
- If BMAP.GetPixel(PictureBox1.Location.X, PictureBox1.Bottom) = New Color().FromArgb(255, 0, 0, 0) Then
- Else
- PictureBox1.Location = PictureBox1.Location + New Point(0, 2)
- End If
- End Sub
- Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
- Dim BMAP As Bitmap = Me.BackgroundImage
- 'Wenn die Linkstaste gedrückt wird
- If e.KeyCode = Keys.Left Then
- If BMAP.GetPixel(PictureBox1.Left - 6, PictureBox1.Location.Y - PictureBox1.width) = New Color().FromArgb(255, 0, 0, 0) Or _
- BMAP.GetPixel(PictureBox1.Location.X - 6, PictureBox1.Location.Y) = New Color().FromArgb(255, 0, 0, 0) Or _
- BMAP.GetPixel(PictureBox1.Location.X - 6, PictureBox1.Location.Y + (PictureBox1.width -1)) = New Color().FromArgb(255, 0, 0, 0) Then
- Else
- PictureBox1.Location = PictureBox1.Location - New Point(6, 0)
- End If
- End If
- 'Wenn die Rechtstaste gedrückt wird
- If e.KeyCode = Keys.Right Then
- If BMAP.GetPixel(PictureBox1.Right + 6, PictureBox1.Location.Y - PictureBox1.width) = New Color().FromArgb(255, 0, 0, 0) Or _
- BMAP.GetPixel(PictureBox1.Location.X + 6, PictureBox1.Location.Y) = New Color().FromArgb(255, 0, 0, 0) Or _
- BMAP.GetPixel(PictureBox1.Location.X + 6, PictureBox1.Location.Y + (PictureBox1.width -1)) = New Color().FromArgb(255, 0, 0, 0) Then
- Else
- PictureBox1.Location = PictureBox1.Location + New Point(6, 0)
- End If
- End If
- End Sub
- End Class
Und so Funktionierts:
Ihr malt eine Kollisionsmap mit den Farben Schwarz und Weiß, die Farbe schwarz stellt hindernisse da, die Farbe Weiß stellt den 'weg' da. z.B. so:
diese Kollisionsmap macht ihr bei eurem Form als Hintergrund bild.
Jetzt braucht ihr noch die designmap, die stellt alle designs da z.B. pflanzen bäume etc. zb. so:
Jetzt fügt ihr eurem Form noch ein Panel hinzu, bei der Dock eigenschaft stellt ihr Fill ein. bei Backgroundimage benutzt ihr die Designmap.
als letztes benutzt ihr noch eine Picturebox in der größe 25x25 pxl, das wird der Spieler sein.
das Quadrat bewegt sich zwar nur langsam aber das kann man ja noch verbessern^^
ich hoffe ihr könnt damit etwas anfangen, have fun
lg.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Gelöschter Benutzer“ ()