Teclado de ampos (IMPUT)

Previous topic - Next topic

msx

Hola después de bastante tiempo. Estoy barajando realizar un nuevo proyecto después de dar por perdido mi ordenador  :( y no me apetece reprogramar un teclado, así que como recordaba que mi amigo Dimas (ampos para el foro) había programado uno, me he decidido a probarlo.

He descargado y ejecutado la demo tal y como aparece en su topic http://www.glbasic.com/forum/index.php?topic=6905.msg55991#msg55991 pero no me funciona correctamente, supongo que estoy un poco oxidado en GLB después de tanto tiempo, así que a ver si alguien puede ayudarme.


[attachment deleted by admin]

mentalthink

Jéje, pensaba que ya no volvías hombre!!!!  =D =D =D

Pues no sabría decirte cuál es el error, de hecho siempre me he hecho mis teclados, la libreria de Ampos no lo ha tocado...

Miratelo con calma, que será alguna pequeña tonteria.

Lo dicho y a ver si te vemos más a menudo.  ;)

msx

Que pasa Iván, la verdad es que entro para leer tus post ya que eres el único que escribes  :P. Voy siguiendo tus progresos del juego que nunca acabas  :nana: a ver si un día me das una sorpresa  :whistle:

Lo que yo quiero saber es si a todos os pasa lo mismo que a mí o es que por algún motivo especial a mí no me va, dudo que ampos haya publicado el ejemplo sin asegurarse de que funcionaba.

Yo también hice mi teclado, pero se lo llevó todo el caco y me da pereza empezar de nuevo. Prefiero aprovechar que ampos hizo uno bastante depurado, y ya si eso le invitaré a unas birras cuando me forre  :D :enc:

mentalthink

Si la verdad es que el foro Español, está muy apagao...

Sobre el juego, aún me quedá, pero el código está muy avanzado, de hecho ahora me toca la tarea de los gráficos, y los movimientos y tal, pero es un projecto muy largo y nada rentable... pero es el juego que me apetece hacer, y curiosamente la semana pasada, me peta la máquina de trabajo, y ahora con el Mac Mini, voy a paso de tortuga...  a ver como me las ingénio...

Saludos, y lo dicho pasaté más a menudo hombre... y animate, que coño!!! no vas ha hacer un jugeo más en tú vida?¿... :good: :good: :booze: :booze:

hardyx

Hola msx, me alegro de verte de nuevo programando. El teclado de ampos se pinta en una pantalla virtual y luego se escala a la resolución del pc o del dispositivo. Revisa que tengas bien la resolución en la instrucción SETSCREEN y en las propiedades del proyecto.

msx

Gracias hardyx, yo también me alegro de veros de nuevo, voy a intentar volver a integrarme más activamente en el foro, pero es que quedé un poco afectado después de perder un año de programación.

El problema que tengo con el código de ampos es que no me funciona su función sc() que debería de redimensionar la pantalla a la resolución que yo quiera. He probado con varias y no funciona. Si alguno puede por favor descargaros el ejemplo del enlace que publiqué en el primer post y ejecutarlo en GLBasic a ver si os ocurre lo mismo que a mí.

Saludos

Hark0

Buenos días...

Yo el código de Ampos no lo he probado/visto. Os pego a continuación el código (de cabeza) de cmo hago yo mi teclado, que en realidad lo utilizo para TODOS los botones de la app. Si alguien quiere algún tipo de aclaración, se lo explico con gusto. En mi app tengo +100 botones declarados y los gestiono tal como muestro de forma rápida y sin complicaciones. Además el invento se "monta" en 5 minutos. Espero que os sirva/inspire, etc. (evidentemente seguro que hay formas mejores, ya se sabe). Saludos.

////////////////////////////////////////


Type tecla
  posx
  posy
  ancho
  alto
  disponible
  activada
  pulsada
  pantalla
endtype

global Teclado[] as tecla
dim Teclado[numero_de_teclas]

restore datos_teclas

for n=0 to numero_de_teclas-1
  read Teclado[n].posx
  read Teclado[n].posy
  read Teclado[n].ancho
  read Teclado[n].alto
  read Teclado[n].disponible
  read Teclado[n].activada
  read Teclado[n].pulsada
  read Teclado[n].pantalla
 next

startdata datos_teclas:
  data 32,32,100,24,1,1,0,1
...
...
enddata


/////////////////// Bucle control Teclado pseudocodigo

for n=0 to numero_de_teclas-1

  si Teclado[n].pantalla= pantalla en la que se pinta la tecla es la actual?

   si Teclado[n].activada=esta la tecla activada?

     si Teclado[n].pulsada= estamos dentro de posx y posx+ancho and posy y posy+alto

        /// accion a ejecutar segun tecla pulsada


///////////////////////// Dibujar teclado

Mismo procedimiento que para detectar pero para render

1 comprobamos que estamos en la pantalla correspondiente
2 comprobamos que la tecla este activa 
3 si esta pulsada la pintamos pulsada, en caso contrario pintamos normal
http://litiopixel.blogspot.com
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica Development Indie Videogames · Pixel-Art · Retrocomputing · Electronic

hardyx

Quote from: msx on 2012-Sep-06
Si alguno puede por favor descargaros el ejemplo del enlace que publiqué en el primer post y ejecutarlo en GLBasic a ver si os ocurre lo mismo que a mí.
A mi me funciona el ejemplo en un pc, pero en otro pc se ve todo negro. Por si te interesa, Dacarsoft publicó otro teclado, algo más complejo ya que usa objetive-c, pero muestra el teclado nativo del iphone. Creo incluso haber visto otro teclado virtual similar al de iOS, pero hecho en GLBasic, aunque no recuerdo el post.

http://www.glbasic.com/forum/index.php?topic=6706.msg67781

msx

Gracias Hark0 muy interesante a la par que ingenioso, puede que te copie la idea en algún que otro proyecto. La parte de la pantalla activa es lo que no me queda del todo claro.

Gracias también hardyx, el teclado de Dacarsoft no me vale porque solo es para iOS y yo soy más ambicioso   :-[ . Por lo demás, me viene bien que me adviertas del detalle de que funcona en algunos ordenadores y en otros no, me dolía la cabeza de hacer pruebas, es raro de todas formas, yo pensé que OpenGL era un estandar.

Hark0

Quote from: msx on 2012-Sep-07
Gracias Hark0 muy interesante a la par que ingenioso, puede que te copie la idea en algún que otro proyecto. La parte de la pantalla activa es lo que no me queda del todo claro.

Gracias también hardyx, el teclado de Dacarsoft no me vale porque solo es para iOS y yo soy más ambicioso   :-[ . Por lo demás, me viene bien que me adviertas del detalle de que funcona en algunos ordenadores y en otros no, me dolía la cabeza de hacer pruebas, es raro de todas formas, yo pensé que OpenGL era un estandar.

Te cuento lo de la pantalla:


Yo programo siguiendo una "filosofía tipo Turing, de máquina de estados. Al principio de mi programa declaro un estado para cada pantalla que necesite tipo así:

GLOBAL Estado_Menu_Principal%=1
GLOBAL Estado_Info%=2
GLOBAL Estado_Ayuda%=3
GLOBAL Estado_Opciones%=4
GLOBAL Estado_Juego%=5

GLOBAL Estado_Programa%=1        // Loop Menu Principal

A partir de aquí, supongo que ya lo tienes más claro ya que el control de mi aplicación se basa en el valor de la variable Estado_Programa. Utilizo un SELECT para dibujar la pantalla correspondiente en función de dicha variable, así como el control de pantalla, que también la examina...

Dentro de mi función de RENDER, antes de SHOWSCREEN (debería ser el último comando antes de volver de la función), tengo la llamada a la función que pinta los botones en pantalla...

Para pintar los botones, simplemente hago un FOR-NEXT para TODOS los botones. Y compruebo:

1- Si el botón está disponible, puede ser que no me interese usarlo.
2- Si el botón está activado, a veces puede estar desactivado (en gris).
3- Si el botón corresponde con la pantalla en la que estamos..... :)

Y actúo en consecuencia.

Por ejemplo, si tienes un botón cuyo valor de pantalla es igual a 2, SOLO se debería poder usar/pintar, en la pantalla INFO (según lo dicho antes). Ok?

De esta forma declaro primero TODOS los botones, y los activo, desactivo a voluntad en el código de forma fácil.

Échale un vistado a las capturas en mi blog y verás la cantidad de botones, incluído mi propio teclado escrito con éste método.

Para temirnar, añado que en mi declaración TYPE del botón, tengo añadido, el texto y el código del icono.

Si necesitas más info, no problemo.


Saludos.
http://litiopixel.blogspot.com
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica Development Indie Videogames · Pixel-Art · Retrocomputing · Electronic

Hark0

Ah!

Si interesa, me lo decís y pego TODO el código en mi blog, con alguna explicación, aquí necesitaría 10 páginas :D
http://litiopixel.blogspot.com
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica Development Indie Videogames · Pixel-Art · Retrocomputing · Electronic

msx

Ahora sí Hark0 me queda perfectamente claro, por tanto haces en cada Loop un barrido de todos los botones existente en la aplicación.

Me ha gustado la idea, y la verdad es que queda muy ordenado.