Con GTK la ventaja es que se puede integrar todos los widgets de GTK para menus y opciones y la pizarra para dibujar y controlar eventos.
O quizás hacerlo todo a pelo con SDL y con mayores posibilidades de crear minijuegos en las actividades y modificar facilmente los widgets. Pero eso supone hacerlo todo a pelo.
Finalmente, mi opción ha sido SDL+Genie+Mis_Controles. Es decir he decidido crear controles para SDL.
Si bien conozco opciones de controles creadas ya en C que podrían modificarse y crear una VAPI para ser usadas por Vala o Genie; no tengo ni idea de como hacer esto. Se que es posible, pero no me apetece adaptar código. Sin embargo por esta pereza de leer código de terceros me encuentro en dificultades para diseñar mis propios controles puesto que tengo varias dudas existenciales de diseño que te las expondré más adelante.
Para que le eches un Ojo a los controles que estoy creando:
Estos son todos los controles que he realizado:
1.- Imagen. Son imagenes que funcionan como botones, y son arrastrables.
2.- Etiquetas. Labels, para poder escribir texto. Pueden ser arrastrables.
3.- Entradas. Entry, para introducir texto. Por ahora solo una linea.
4.- Selectores. Para elegir entre varias opciones de texto.
5.- Interruptores. Para encender o apagar una opción.
6.- Botones. Para activar eventos.
Para crear una Imagen solo necesitamos incializar SDL, e instanciar SDLK (que es mi entorno gráfico de controles) después escribir:
a: imagen
init
a=new imagen(1, 50,50,160,70,"Imagen.png")
y ya tenemos una imagen, solo falta conectarla a un procedimiento propio en cada evento. Por ejemplo:
a: imagen
init
a=new imagen(1, 50,50,160,70,"Imagen.png")
a.izq_pulsado.connect (on_pulsado)
def on_pulsado(num:int)
print "El control %d ha sido pulsado",num
Con esto solo ya puedo realizar muchiiisisisimas actividades.
El codigo lo podeis ver y descargar en gitorius / SDL-Kontrol
https://gitorious.org/sdl-kontrol/sdl-kontrol/trees/master
Principal sería el lugar donde tenemos el código de nuestra aplicación y SDLK+cadenas sería el lugar donde se encuentra el codigo de los controles.
No hay comentarios:
Publicar un comentario