Gambas3: combobox gráfico
Pequeña utilidad para crear un combobox gráfico dinámico, ejemplo de como crear "al vuelo" controles.
Código fuente:
Trucos sobre manejo de softwarelibre y gnu linux. También a los programas que hago en gambas3, python, java, etc.... Consejos y trucos sobre otros programas: excel, word, internet, instalación de programas, Arduino y demás....
Gambas3: combobox gráfico
Pequeña utilidad para crear un combobox gráfico dinámico, ejemplo de como crear "al vuelo" controles.
Código fuente:
' Gambas class file
Public Parado As Integer = 1Public AndarDerecha As Integer = 2Public AndarIzquierda As Integer = 3
' Gambas class fileProperty estado As StringPrivate hestado As String
Public GaleriaAnimacines As New Collection
Private Function estado_Read() As StringReturn hestadoEnd
Private Sub estado_Write(Value As String)hestado = ValueEnd
Public Sub CambioEstado(cadena As String)hestado = cadenaEnd
Public Sub animacionActual() As AnimacionReturn GaleriaAnimacines[hestado]End
Public Sub _new(ficheroRutaEnTablero As String, ptablero As DrawingArea)…end
'------------------ estados de animacion -----------------Public miEstadoAnimacion As New EstadoAnimacionPublic miEstado As New EstadosPosibles'---------------------------------------------------------
Public Sub ActualizaAnimacion(estado As String)
AnimacionTmp = miEstadoAnimacion.GaleriaAnimacines[estado]
End
Public Sub Mueve(casilla As Integer)….difx = (casillafinalX - casillaInicialX) / puntosdify = (casillafinaly - casillaInicialy) / puntosIf difx < 0 ThenActualizaAnimacion(miEstado.AndarIzquierda)ElseActualizaAnimacion(miEstado.AndarDerecha)EndifcontadorA = 0end
Además aparece un nuevo contador "ContadorA", que llevará la cuenta de los incrementos que lleva la animación (esta la usaremos en el método actualizaposición() )
Public Sub actualizaPosicion()
If casillaFinal = casillaInicial Then Return 'a llegado a la casilla de destino
contadorA += 1pto.x = casillaInicialX + difx * contadorApto.y = casillaInicialY + dify * contadorA
If casillafinalX = pto.x And casillafinaly = pto.y ThencasillaInicial = casillaFinalmiEstadoAnimacion.CambioEstado(miEstado.Parado)AnimacionTmp = miEstadoAnimacion.animacionActual()Endif
End
' Gambas class file
Public MiPiezaAnimada As PiezaAnimada
Public miEstado As New EstadosPosibles
Public Sub _New()
End
Public Sub dibuja()
MiPiezaAnimada.dibuja()
End
Public Sub actualizaPosicion()
MiPiezaAnimada.actualizaPosicion()
End
Public Sub Mueve(casilla As Integer)
MiPiezaAnimada.Mueve(casilla)
End
' Gambas class file
Inherits Jugador
Public Sub _New(ficheroRutaEnTablero As String, ptablero As DrawingArea)
Dim animacionTmp As Animacion
Me.MiPiezaAnimada = New PiezaAnimada(ficheroRutaEnTablero, ptablero)'agrego distintas animaciones
'Andando a la derechaanimacionTmp = New Animacion("jacinto.png", 4, 7, "0,1,2,3,2,1,0,4,5,6,5,4,1")Me.MiPiezaAnimada.miEstadoAnimacion.GaleriaAnimacines.Add(animacionTmp, Str$(Me.miEstado.AndarDerecha))
'Parado...animacionTmp = New Animacion("jacinto.png", 4, 7, "26,26,26,26,26,26,26,0,0,0,0,0,0,26,26,26,26,26,26,26,7,7,7,7,7,7")Me.MiPiezaAnimada.miEstadoAnimacion.GaleriaAnimacines.Add(animacionTmp, Str$(Me.miEstado.Parado))
'Andando a la derechaanimacionTmp = New Animacion("jacinto.png", 4, 7, "7,8,9,10,9,8,7,11,12,13,12,11")Me.MiPiezaAnimada.miEstadoAnimacion.GaleriaAnimacines.Add(animacionTmp, Str$(Me.miEstado.AndarIzquierda))
'digo cual es el estado inicial.Me.MiPiezaAnimada.miEstadoAnimacion.estado = Me.miEstado.Parado'actualizo animacionMe.MiPiezaAnimada.ActualizaAnimacion(Me.miEstado.parado)
Me.Mueve(0) 'Me pongo en la casilla 0
End