brauche dringend hilffeeee ( picturebox bewegen :D)

ek24

Grünschnabel
guten abend
ich versuche seit 1ner woche eine kreuzung zu programmieren mit ampeln und autos.
hierzu habe ich 2 fragen.
1. meine ampel schalten von grün auf gelb dann auf rot. aba wie bekomme ich es hinn, da die ampel weiter schaltet und nie aufhört. ich habe es mit dem timer gemacht nur die ampel schaltet nicht nicht weiter nach dem alle images durch sind.
2. wie bekomme ich es hin, dass die autos fahren und bei rot anhalten und bei grün weiter fahren

ich programmiere seit einem monat mit vb6
bitte helfennnn
 
Ich hab dir mal 'ne einfache Schaltung für eine Kreuzung mit zwei Ampeln programmiert. Nur wenige Dinge sind nötig um sie auszuprobieren.

Füge am besten in ein neues Formular folgende Dinge ein:
  1. Das Timercontrol (Timer1)
  2. Zwei Shapes (Shape1 und Shape2)

Füge jetzt im Formularmodul folgenden Source ein.
Mehr ist nicht zu tun - nur noch starten.
Code:
Enum EAmpelPhase
    RotNachGelb
    GelbNachGrün
    GrünNachGelb
    GelbNachRot
    AmpelWechsel
End Enum

Enum EAmpelFarbe
    grün
    gelb
    rot
End Enum

Private Type TAmpel
    Objekt As VB.Control
    Farbe As EAmpelFarbe
End Type

Private m_Ampeln(1 To 2) As TAmpel
Private m_GrüneAmpel As Integer
Private m_AmpelPhase As EAmpelPhase

Private Property Let AmpelFarbe(ByVal AmpelNum%, ByVal Farbe As EAmpelFarbe)
    m_Ampeln(AmpelNum).Farbe = Farbe
    m_Ampeln(AmpelNum).Objekt.FillColor = Switch( _
        Farbe = grün, vbGreen, _
        Farbe = gelb, vbYellow, _
        Farbe = rot, vbRed)
End Property

Private Property Get AmpelFarbe(ByVal AmpelNum%) As EAmpelFarbe
    AmpelFarbe = m_Ampeln(AmpelNum).Farbe
End Property

Private Sub Form_Load()
    
    Me.Shape1.FillStyle = vbFSSolid
    Me.Shape2.FillStyle = vbFSSolid
    
    Set m_Ampeln(1).Objekt = Me.Shape1
    Set m_Ampeln(2).Objekt = Me.Shape2
    
    AmpelFarbe(1) = rot
    AmpelFarbe(2) = rot
    m_GrüneAmpel = 1
    m_AmpelPhase = RotNachGelb

    Me.Timer1.Interval = 1500
    
End Sub

Private Sub Timer1_Timer()

    Select Case m_AmpelPhase
    
        Case RotNachGelb
            AmpelFarbe(m_GrüneAmpel) = gelb
            m_AmpelPhase = GelbNachGrün
            
        Case GelbNachGrün
            AmpelFarbe(m_GrüneAmpel) = grün
            m_AmpelPhase = GrünNachGelb
            
        Case GrünNachGelb
            AmpelFarbe(m_GrüneAmpel) = gelb
            m_AmpelPhase = GelbNachRot
            
        Case GelbNachRot
            AmpelFarbe(m_GrüneAmpel) = rot
            m_AmpelPhase = AmpelWechsel
            
        Case AmpelWechsel
            m_AmpelPhase = RotNachGelb
            If m_GrüneAmpel = 1 Then
                m_GrüneAmpel = 2
            Else
                m_GrüneAmpel = 1
            End If
            
    End Select
    
End Sub
 
Zurück