Auto verschwindet, wieso?

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Feuerangriff.

    Auto verschwindet, wieso?

    Hey Leute,

    ich habe ein Programm gemacht, wo Autos auf einer Straße fahren und dann bei einer Ampel bei Rot halten und so und auch Anfahren (Beschleunigen etc.). Funktioniert auch alles super nur habe ich ein Problem:
    Ich habe dem Auto ein PNG Hintergrundbild gegeben, was auch an manchen Stellen transparent ist. Wenn ich jetzt die BackColor des Panels (= das Auto) ändere (so, dass dann an den transparenten Stellen die ausgewählte BackColor ist) dann sehe ich das Auto nicht mehr, egal was für eine Farbe ich nehme. Ich muss dann immer mit Strg+Z solange zurückmachen, bis das wieder so ist wie jetzt (BackColor=weiß). Selbst wenn ich die BackColor auf Weiß stelle (so wie es jetzt ist) dann sieht man das Auto auch nicht mehr.

    Ich habe in einem Textfeld immer die aktuelle Position stehen (also x und y). Wenn das Auto nicht mehr zu sehen ist, dann bewegt es sich aber. Also daran kann es nicht liegen.

    Hoffe ihr könnt mir helfen, wenn jemand mein Problem nicht verstanden hat, dann bitte schreiben.


    -------------------------------------------------------
    EDIT: Ich habe das Projekt mal hochgeladen, ihr könnt es euch hier runterladen:
    RapidShare: 1-CLICK Web hosting - Easy Filehosting
    Ok hier:

    Die Comments nach End Sub sind dazu da, das man sieht, was dadrüber alles gemacht wurde

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim iLeft As Integer
    3. Dim iRight As Integer
    4. '******Allgemeine Einstellungen******'
    5. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    6. PkWLeft.Location = New Point(-PkWLeft.Size.Width, 190)
    7. PkWRight.Location = New Point(-PkWRight.Size.Width, PkWRight.Location.Y)
    8. iLeft = PkWLeft.Location.X
    9. iRight = PkWRight.Location.X
    10. End Sub ' Pkws für ersten Start positionieren und Variablen zuweisen
    11. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    12. If PkWLeftTimer.Enabled = True Then
    13. PkWLeftTimer.Enabled = False
    14. Else
    15. PkWLeftTimer.Enabled = True
    16. End If
    17. End Sub ' Button Pkw Left programmieren
    18. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    19. If AmpelLeftTimer.Enabled = True Then
    20. AmpelLeftTimer.Enabled = False
    21. ElseIf AmpelLeftTimer.Enabled = False Then
    22. AmpelLeftTimer.Enabled = True
    23. End If
    24. End Sub ' Button Ampel Left programmieren
    25. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    26. If PkWRightTimer.Enabled = True Then
    27. PkWRightTimer.Enabled = False
    28. Else
    29. PkWRightTimer.Enabled = True
    30. End If
    31. End Sub ' Button Pkw Right programmieren
    32. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    33. If AmpelRightTimer.Enabled = True Then
    34. AmpelRightTimer.Enabled = False
    35. Else
    36. AmpelRightTimer.Enabled = True
    37. End If
    38. End Sub ' Button Ampel Right porgrammieren
    39. '************Pkw1*************'
    40. Private Sub AmpelLeftTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AmpelLeftTimer.Tick
    41. If AmpelLeftFarbe.BackColor = Color.Red Then
    42. AmpelLeftFarbe.BackColor = Color.Green
    43. AmpelLeftTimer.Interval = 5000
    44. ElseIf AmpelLeftFarbe.BackColor = Color.Green Then
    45. AmpelLeftFarbe.BackColor = Color.Orange
    46. AmpelLeftTimer.Interval = 1000
    47. ElseIf AmpelLeftFarbe.BackColor = Color.Orange Then
    48. AmpelLeftFarbe.BackColor = Color.Red
    49. AmpelLeftTimer.Interval = 3000
    50. End If
    51. End Sub ' Ampeln programmieren
    52. Private Sub PkWLeftTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PkWLeftTimer.Tick
    53. PkWLeft.Location = New Point(iLeft, 190)
    54. iLeft += 1
    55. If PkWLeft.Location.X = Straße.Size.Width Then
    56. iLeft = -PkWLeft.Size.Width
    57. End If
    58. End Sub ' PkW Bewegen
    59. Private Sub ControlAmpelLeftTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ControlAmpelLeftTimer.Tick
    60. TextBox1.Text = PkWLeft.Location.X
    61. TextBox2.Text = PkWLeft.Location.Y
    62. If AmpelLeftFarbe.BackColor = Color.Red And PkWLeft.Location.X = AmpelLeftBackground.Location.X - 120 Then
    63. PkWLeftTimer.Enabled = False
    64. ElseIf AmpelLeftFarbe.BackColor = Color.Green And PkWLeft.Location.X = AmpelLeftBackground.Location.X - 120 Then
    65. PkWLeftTimer.Enabled = True
    66. End If
    67. End Sub ' Wenn Ampel Rot ist, dann halten
    68. Private Sub ControlPkWLeftTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ControlPkWLeftTimer.Tick
    69. If AmpelLeftFarbe.BackColor = Color.Red And PkWLeft.Location.X < AmpelLeftBackground.Location.X - 120 And PkWLeft.Location.X >= AmpelLeftBackground.Location.X - 150 And PkWLeftTimer.Interval < 1000 Then
    70. PkWLeftTimer.Interval += 10
    71. ElseIf PkWLeftTimer.Interval > 1 And PkWLeft.Location.X <> AmpelLeftBackground.Location.X - 120 Then
    72. PkWLeftTimer.Interval -= 10
    73. End If
    74. End Sub ' Bei rot langsamer werden und bei grün schneller werden
    75. '************PkW2************'
    76. Private Sub AmpelRightTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AmpelRightTimer.Tick
    77. If AmpelRightFarbe.BackColor = Color.Red Then
    78. AmpelRightFarbe.BackColor = Color.Green
    79. AmpelRightTimer.Interval = 5000
    80. ElseIf AmpelRightFarbe.BackColor = Color.Green Then
    81. AmpelRightFarbe.BackColor = Color.Orange
    82. AmpelRightTimer.Interval = 1000
    83. ElseIf AmpelRightFarbe.BackColor = Color.Orange Then
    84. AmpelRightFarbe.BackColor = Color.Red
    85. AmpelRightTimer.Interval = 3000
    86. End If
    87. End Sub ' Ampeln programmieren
    88. Private Sub PkWRightTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PkWRightTimer.Tick
    89. PkWRight.Location = New Point(iRight, PkWRight.Location.Y)
    90. iRight -= 1
    91. If PkWRight.Location.X = -PkWRight.Size.Width Then
    92. iRight = PkWRight.Size.Width + Straße.Size.Width
    93. End If
    94. End Sub ' PkW Bewegen
    95. Private Sub ControlAmpelRightTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ControlAmpelRightTimer.Tick
    96. TextBox4.Text = PkWRight.Location.X
    97. TextBox3.Text = PkWRight.Location.Y
    98. If AmpelRightFarbe.BackColor = Color.Red And PkWRight.Location.X = AmpelRightBackground.Location.X + 120 Then
    99. PkWRightTimer.Enabled = False
    100. ElseIf AmpelRightFarbe.BackColor = Color.Green And PkWRight.Location.X = AmpelRightBackground.Location.X + 120 Then
    101. PkWRightTimer.Enabled = True
    102. End If
    103. End Sub ' Wenn Ampel Rot ist, dann halten
    104. Private Sub ControlPkWRightTimer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ControlPkWRightTimer.Tick
    105. If AmpelRightFarbe.BackColor = Color.Red And PkWRight.Location.X > AmpelRightBackground.Location.X + 120 And PkWRight.Location.X <= AmpelRightBackground.Location.X + 150 Then
    106. PkWRightTimer.Interval += 10
    107. ElseIf PkWRightTimer.Interval > 1 And PkWRight.Location.X <> AmpelRightBackground.Location.X + 120 Then
    108. PkWRightTimer.Interval -= 10
    109. End If
    110. End Sub ' Bei rot langsamer werden und bei grün schneller werden
    111. End Class



    Aber ich würde dir raten, das projekt einfach herunterzuladen

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. If PkWLeftTimer.Enabled = True Then
    3. PkWLeftTimer.Enabled = False
    4. Else
    5. PkWLeftTimer.Enabled = True
    6. End If
    7. End Sub ' Button Pkw Left programmieren
    8. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    9. If AmpelLeftTimer.Enabled = True Then
    10. AmpelLeftTimer.Enabled = False
    11. ElseIf AmpelLeftTimer.Enabled = False Then
    12. AmpelLeftTimer.Enabled = True
    13. End If
    14. End Sub ' Button Ampel Left programmieren
    15. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    16. If PkWRightTimer.Enabled = True Then
    17. PkWRightTimer.Enabled = False
    18. Else
    19. PkWRightTimer.Enabled = True
    20. End If
    21. End Sub ' Button Pkw Right programmieren
    22. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    23. If AmpelRightTimer.Enabled = True Then
    24. AmpelRightTimer.Enabled = False
    25. Else
    26. AmpelRightTimer.Enabled = True
    27. End If
    28. End Sub ' Button Ampel Right porgrammieren

    mach aus dem, bitte mal follgendes:

    VB.NET-Quellcode

    1. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    2. PkWLeftTimer.Enabled = Not PkWLeftTimer.Enabled
    3. End Sub ' Button Pkw Left programmieren
    4. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    5. AmpelLeftTimer.Enabled = Not AmpelLeftTimer.Enabled
    6. End Sub ' Button Ampel Left programmieren
    7. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
    8. PkWRightTimer.Enabled = Not PkWRightTimer.Enabled
    9. End Sub ' Button Pkw Right programmieren
    10. Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
    11. AmpelRightTimer.Enabled = Not AmpelRightTimer.Enabled
    12. End Sub ' Button Ampel Right porgrammieren
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---
    danke, aber das hilft mir bei mienem problem auch net weiter


    ------------------------------------------------------------
    EDIT: Ich habs jetzt iwie geschafft das rechte Auto transparent zu machen, aber das linke geht immer noch net, das verschwindet dann immer

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Feuerangriff“ ()