Kollisionsabfrage: Panel ändert bei Start des Programms die Position!

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Assay.

    Kollisionsabfrage: Panel ändert bei Start des Programms die Position!

    Hi,
    Ich bin auf einen Kollisions-Code "gestoßen", der höchstwarscheinlich einwandfrei funktioniert, doch ich will, dass, wenn sich die beiden Panels berühren, das eine, was sich bewegt, dem anderen ausweicht und nach unten "geht".
    Was die Kollision angeht: Es funktioniert ALLES, aber aus welchem Grund auch immer, verändert sich die position des Panels, was sich bewegen soll, manchmal (Ich glaube immer nur dann, wenn es in der oberen hälfte der Form ist, oder so). Ich vermute, dass warum auch immer die Zahlen bei der Zeile, bei der das Problem auftritt, irgendwie eine anderen Wert haben (1 = 50 oder sowas)


    Ich brauche den Code für ein späteres Programm, was ich schreiben will (Da kann man dann eine Route eingeben und die wird dann von einer "Kugel" gefahren im Sinne von einer Progressbar, mehr oder weniger)


    Hier der Code, falls den irgendwer braucht:

    VB.NET-Quellcode

    1. Private Sub Panel1_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles Panel1.Move
    2. Dim rec1 As New Rectangle(Panel1.Location.X, Panel1.Location.Y, Panel1.Width, Panel1.Height)
    3. Dim rec2 As New Rectangle(Panel2.Location.X, Panel2.Location.Y, Panel2.Width, Panel2.Height)
    4. If rec1.IntersectsWith(rec2) Then
    5. Panel1.Location = New Point(Panel1.Location.X - 1, Panel1.Location.Y + 1) '<- hier ist das Problem
    6. End If
    7. End Sub
    8. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    9. Panel1.Location = New Point(Panel1.Location.X + 1, Panel1.Location.Y)
    10. End Sub