Entrada de textos por parte del usuario

Started by Trecek, August 14, 2011, 10:00:15 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Trecek

Segun tengo entendido, bennu no te da la posibilidad de introducir un texto en el programa mientras se esta ejecutando, al estilo cobol por ejemplo. Que podria hacer yo para emularlo?

En mi "fantabuloso" editor de pantallas quiero poner la opcion de que el usuario le de un titulo a las pantallas que cree, ademas de un texto introductorio, otros dos al finalizar la pantalla (exito y fracaso), y algunas cosas mas que no vienen al caso.

Agradeceria cualquier orientacion al respecto, porque francamente no se por donde cogerlo aun (demasiadas ideas y ninguna me convence). Alguien ha trabajado con este problema anteriormente?

Futu-block

te refieres a modificar el programa mientras se ejecuta???

Trecek

No, no, igual no me he sabido explicar...

El editor de pantallas es parte del juego que estoy haciendo, lo que quiero es poner una ventanita donde el usuario pueda escribir un texto introductorio al crear esa pantalla, para que cuando se juegue esa mision salga antes de comenzar a matar bichos.

Ese texto, junto con el resto de informacion de la pantalla (bichos, escenario, recompensas...), se guardaria en un archivo. Luego al ir a jugar esa pantalla el juego tomaria la informacion de ese archivo.

Futu-block

entonces te refiere a que el juego guarda un texto en un archivo (por ejemplo .txt) modificable para cada vez que se inicie el juego lo consulte ¿no?

Trecek

Si, exactamente eso. No se como poner en pantalla un area donde el usuario pueda escribir y borrar libremente tipo editor de textos y que luego el programa lo guarde para futuras consultas.

Drumpi

El código anda por el foro, se ha dicho varias veces.
Pero por si lo quieres intentar tú mismo, consulta la variable global ASCII. El código es muy sencillo.

Dibujar el area ya es cosa tuya, pero básicamente necesitas una string donde ir guardando lo que se escriba y un WRITE_STRING para irlo viendo por pantalla (ojo, sólo uno, fuera de los bucles, que ya sabemos que esta función se actualiza sola).
Y para guardarlo, eso es cosa de ficheros: puedes ir byte a byte usando FWRITE, o toda la cadena con FPUTS + caracter de fin de línea (¿10 o 13? siempre los confundo).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Trecek

Quote from: Drumpi on August 14, 2011, 12:24:01 PM
El código anda por el foro, se ha dicho varias veces.
Pero por si lo quieres intentar tú mismo, consulta la variable global ASCII. El código es muy sencillo.

Vaya, pido disculpas por preguntar algo que ya se habia contestado (varias veces encima). Mea Culpa.
Independientemente de que use ese codigo o cree el mio propio, leere con detenimiento las instrucciones que me comentas, me interesa aprender sobre el tema. Gracias una vez mas por las explicaciones Drumpi. Karma ;)

Futu-block

no te preocupes trecek, yo no paro de preguntar siempre, soy de la esecie de ''comprede-codigo'' en vez de copiarlos

osk


Trecek

Futublock: No es preguntar lo que me preocupa, sino preguntar algo que ya se ha contestado en el foro, no me gusta repetir temas si puedo evitarlo, pero bueno, todos metemos la pata alguna vez y yo mas que muchos ;)

Osk: Tu manual me ha sido de mucha (muchisima) utilidad hasta ahora. Textos claros con ejemplos practicos para todo, no solo la sintaxis y pese a ser un manual tecnico no se hace pesado de leer, me gusta sobre todo que es util seas novato o no tan novato. Mil gracias por escribirlo, me imagino que debio de ser un trabajo largo, pero en mi humilde opinion merecio la pena. No dudes que lo consultare tambien para esto (como para tantas otras cosas). Eso si, yo no llamaria "manualillo" a un libro de mas de 600 paginas :D

Drumpi

Es la modestia, nosotros lo llamamos "la Biblia de Bennu", y es muy difícil que encuentres algo más completo que eso para cualquier div-like (a lo mejor, si juntas todos los manuales de DIV y DIV2, puedes tener más o menos la misma cantidad de información :D).

Pero no es molestia que se pregunten cosas repetidas, para eso están los novatos :D
Nah, fuera de bromas, aquí no acuchillamos a nadie, como se hace en otros foros, pero como hay cierta tendencia a no escribirle código a los demás, cuando ya está escrito, lo remitimos a la búsqueda (sobre todo por pereza).

Pero básicamente consiste en almacenar el valor de ascii en una variable, comparar para ver si no es la misma del frame anterior, y usar un switch para actuar en consecuencia: si es el 31, añadir un espacio a la string destino, si es intro (creo que es el caracter 13) salir del bucle de lectura, si es el 9 (que si no recuerdo mal, es borrar) quitar una letra a la cadena, y si es cualquier valor entre 32 y 255 (32..255), añadir el caracter correspondiente a la cadena. Así de fácil, y además, puedes añadir tantos caracteres especiales como quieras (por ejemplo, el tabulador por 4 espacios).
Hala, como con 1001 procesos sólo va a 9 FPS, vamos a meterle 32 veces más, a ver si revienta.
(Drumpi epic moment)

Trecek

Ya habia leido por ahi ese apodo para el "manualillo", y estoy completamente de acuerdo, en su dia use div1 y div2, si juntas ambos manuales y quitas las  partes repetidas... por ahi andara la cosa. El apodo es bien merecido.

Ya veo que en este foro no os molesta tanto el repetir cosas como en otros que he visitado, y es de agradecer, porque muchas veces cuando sabes lo que quieres hacer pero no como se llama se hace muy complicado buscar.

En cuanto a lo que comentas de ascii etc, algo asi imaginaba yo, aunque solo teoricamente. Aun no me he metido con la parte de textos. Me da que cuando tenga claro que instrucciones usar y que forma darle a los cuadros de introduccion de textos va a ser un trabajo facil pero largo de escribir. Poco a poco, que remedio.

Tengo el trabajo del editor de pantallas mas o menos al 33%, hare el resto poniendo comentarios en las zonas donde debe ir una entrada de texto y cuando tenga todo en el editor funcionando entonces pasare a este tema (y seguramente vuelva a daros la brasa otra vez  ;D ). Tengo una parte del programa mas o menos pensada que no voy a poder escribir hasta el final (ya que aun no tengo todas las variables que esta parte modificara), y acabo de darme cuenta de que este tema de los textos y esa parte van de la mano por asi decirlo, con que lo mejor sera que las haga a la vez.

Muchas gracias a todos por vuestros comentarios y aportes. Me he metido en un proyecto un tanto ambicioso para mi nivel de programacion actual, y si no fuese por vosotros no podria hacerlo, me parece que la seccion de creditos de mi programa va a ser bastante extensa...   :D

Futu-block

buf, ahora que lo dices quiero hacer aplicaciones con textos, escribir el texto para los nombres de los jugadores...

Trecek

No se que tipo de juego estas haciendo futu, pero si solo vas a poner los nombres de los jugadores puedes hacer una pantalla con el alfabeto, los numeros, simbolos si quieres.. de forma que cada uno sea un proceso, y que el jugador inserte su nombre clickeando encima, con un proceso para borrar caracteres y otro para terminar, al estilo de las maquinas recreativas antiguas.

Es una chorrada que no tiene que ver mucho con textos realmente, pero yo que se, por dar una idea distinta. Obviamente lo mas adecuado seria insertarlos por teclado, solo lo menciono porque me gusta lo retro en segun que juegos.

Futu-block



eso es lo que quiero, guardar los nombres temporales, como el juego de corazones de window$ que puedes poner el nombre que quieres. Claro que para eso tengo que unsar una variable string ¿no?

ya investigo en la biblia...  ;)