Acensor
Publicado por Marta G (1 intervención) el 17/10/2024 20:38:00
Estoy estudiando la carrera de programación y me han pedido que haga un simulador de un ascensor donde se cotiza un BTN y se mueve hacia esa posición, pero no entiendo cómo hacerlo. Si alguien pudiera apoyarme con una pequeña explicación. Al parecer tengo que hacer dos temporizadores para bajar uno y que el otro suba, pero no entiendo cómo implementarlo
' Mover el ascensor
Private Sub MoverElevador(pisoDestino As Integer)
'Dim pisoActual As Integer = 1
Dim alturaPiso As Integer = 40
Dim posicionInicial As Integer = labelAscensor.Top
' Simular movimiento del ascensor
While pisoActual <> pisoDestino
If pisoActual < pisoDestino Then
pisoActual += 1
Else
pisoActual -= 1
End If
labelAscensor.Top = posicionInicial - (pisoActual - 1) * alturaPiso
System.Threading.Thread.Sleep(200)
Me.Refresh()
End While
End Sub
' Evento de Click en los botones de piso
Private Sub Boton_Click(sender As Object, e As EventArgs)
Dim btn As Button = CType(sender, Button)
Dim pisoDestino As Integer = Integer.Parse(btn.Text.Replace("Piso ", ""))
MoverElevador(pisoDestino)
End Sub
' Evento que se dispara al hacer clic en un botón de piso
Private Sub BotonPiso_Click(sender As Object, e As EventArgs)
Dim boton As Button = CType(sender, Button)
Dim pisoSeleccionado As Integer = Integer.Parse(boton.Text.Replace("Piso ", ""))
' Mover el ascensor al piso seleccionado
MoverElevador(pisoSeleccionado)
End Sub
'Timer 1 de elevador
' Evento Tick del Timer para subir
Private Sub TimerSubir_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If pisoActual < 4 Then
pisoActual += 1 ' Aumentar el piso actual
labelAscensor.Top = posicionInicial - (pisoActual - 1) * alturaPiso ' Mover el ascensor hacia arriba
Else
Timer1.Stop() ' Detener el Timer al llegar al último piso
End If
End Sub
' Evento Tick del Timer para bajar
Private Sub TimerBajar_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
If pisoActual > 1 Then
pisoActual -= 1 ' Disminuir el piso actual
labelAscensor.Top = posicionInicial - (pisoActual - 1) * alturaPiso ' Mover el ascensor hacia abajo
Else
Timer2.Stop() ' Detener el Timer al llegar al primer piso
End If
End Sub
' Mover el ascensor
Private Sub MoverElevador(pisoDestino As Integer)
'Dim pisoActual As Integer = 1
Dim alturaPiso As Integer = 40
Dim posicionInicial As Integer = labelAscensor.Top
' Simular movimiento del ascensor
While pisoActual <> pisoDestino
If pisoActual < pisoDestino Then
pisoActual += 1
Else
pisoActual -= 1
End If
labelAscensor.Top = posicionInicial - (pisoActual - 1) * alturaPiso
System.Threading.Thread.Sleep(200)
Me.Refresh()
End While
End Sub
' Evento de Click en los botones de piso
Private Sub Boton_Click(sender As Object, e As EventArgs)
Dim btn As Button = CType(sender, Button)
Dim pisoDestino As Integer = Integer.Parse(btn.Text.Replace("Piso ", ""))
MoverElevador(pisoDestino)
End Sub
' Evento que se dispara al hacer clic en un botón de piso
Private Sub BotonPiso_Click(sender As Object, e As EventArgs)
Dim boton As Button = CType(sender, Button)
Dim pisoSeleccionado As Integer = Integer.Parse(boton.Text.Replace("Piso ", ""))
' Mover el ascensor al piso seleccionado
MoverElevador(pisoSeleccionado)
End Sub
'Timer 1 de elevador
' Evento Tick del Timer para subir
Private Sub TimerSubir_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If pisoActual < 4 Then
pisoActual += 1 ' Aumentar el piso actual
labelAscensor.Top = posicionInicial - (pisoActual - 1) * alturaPiso ' Mover el ascensor hacia arriba
Else
Timer1.Stop() ' Detener el Timer al llegar al último piso
End If
End Sub
' Evento Tick del Timer para bajar
Private Sub TimerBajar_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
If pisoActual > 1 Then
pisoActual -= 1 ' Disminuir el piso actual
labelAscensor.Top = posicionInicial - (pisoActual - 1) * alturaPiso ' Mover el ascensor hacia abajo
Else
Timer2.Stop() ' Detener el Timer al llegar al primer piso
End If
End Sub
Valora esta pregunta


0