Hallo,
Ich habe mich extra für diese Frage hier angemeldet, da ich hoffe, dass mir hier jemand helfen kann
Zu meiner Frage:
Ich programmiere gerade ein kleines! Plattformer game(also wie super mario oder so) und habe jetzt eine Kollision. Also meime Hauptfigur fällt immer weiter runter außer wenn er auf einer platform steht.Dies habe ich mit picturebox.bounds.intesectwith...usw gemacht aber wenn ich jetzt von der seite in die picturebox komme bleibe ich in der picturebox hängen und kann mich in IHR! bewegen. Hier der Code:
Ich habe dieses Problem versucht damit zu lösen, dass ich eine Boolean variable deklariere und dann immer prüfe ob ich falle oder nicht. Das hat aber leider nicht funktioniert. Auch nicht mit dem Befehl:
If PictureBox1.Bounds.IntersectsWith(PictureBox2.Bounds) And isfalling = True Then usw...
Ich hoffe jemand kann mir Helfen
MFG
SmellGreen!
PS: sorry für dieses komische code fenster aber ich bin neu hier und weiß nicht wie ich das richtig machen soll...
Ich habe mich extra für diese Frage hier angemeldet, da ich hoffe, dass mir hier jemand helfen kann
Zu meiner Frage:
Ich programmiere gerade ein kleines! Plattformer game(also wie super mario oder so) und habe jetzt eine Kollision. Also meime Hauptfigur fällt immer weiter runter außer wenn er auf einer platform steht.Dies habe ich mit picturebox.bounds.intesectwith...usw gemacht aber wenn ich jetzt von der seite in die picturebox komme bleibe ich in der picturebox hängen und kann mich in IHR! bewegen. Hier der Code:
VB.NET-Quellcode
- Public Class Singleplayer Public isfalling As Boolean = True Public playerlife As Integer
- Private Sub Singleplayer_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown If e.KeyCode = Keys.Left Then If PictureBox1.Bounds.IntersectsWith(PictureBox2.Bounds) Then If isfalling = True Then Else PictureBox1.Location = New Point(PictureBox1.Location.X - 1, PictureBox1.Location.Y) End If End If
- End If If e.KeyCode = Keys.Right Then If PictureBox1.Bounds.IntersectsWith(PictureBox2.Bounds) And isfalling = True Then Else PictureBox1.Location = New Point(PictureBox1.Location.X + 1, PictureBox1.Location.Y) End If End If If e.KeyCode = Keys.Up Then
- End If End Sub Private Sub Singleplayer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load playerlife = 5
- Timer1.Enabled = True End Sub
- Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If PictureBox1.Bounds.IntersectsWith(PictureBox2.Bounds) Then isfalling = False Label1.Text = isfalling.ToString Else PictureBox1.Location = New Point(PictureBox1.Location.X, PictureBox1.Location.Y + 5) isfalling = True Label1.Text = isfalling.ToString End If End Sub
- End Class
Ich habe dieses Problem versucht damit zu lösen, dass ich eine Boolean variable deklariere und dann immer prüfe ob ich falle oder nicht. Das hat aber leider nicht funktioniert. Auch nicht mit dem Befehl:
If PictureBox1.Bounds.IntersectsWith(PictureBox2.Bounds) And isfalling = True Then usw...
Ich hoffe jemand kann mir Helfen
MFG
SmellGreen!
PS: sorry für dieses komische code fenster aber ich bin neu hier und weiß nicht wie ich das richtig machen soll...