SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: Zeus en Jueves 28 de Febrero de 2002, 02:35
-
Como puedo leer las flechas del teclado con ncurses(-> <-), y otra pregunta, alguien tiene un documeton bueno, que hable sobre programacion en ncurses, sin considerar el que aparece en lucas???
bueno Adios.
-
Para controlar las flechas de direccion puedes usar:
KEY_UP (Flecha Arriba)
KEY_DOWN (Flecha Abajo)
KEY_LEFT (Flecha Izquiera)
KEY_RIGHT (Flecha Derecha)
Esto lo puedes utilizar guardando la tecla pulsada en una variable tipo char(digamos... 'chr') y haciendo la pregunta. Por ejemplo:
if(chr == KEY_UP)
("Vamos arriba!n");
El codigo ASCII de cada uno lo desconozco...
En cuanto a manuales, el unico en CASTELLANO solo conozco el de lucas, pero si te defiendes con el ingles, ve a google y pone HOWTO PROGRAMMING NCURSES y te saldrán unas cuantas páginas...;)
Saludos,
Tenesor
-
Como siempre eres el unico que me responde :)
Es idea mia o aqui son pocos los que programan bajo Linux?
-
Pues si, eso parece. Entre los programadores que hay en este foro (por lo menos de C/C++) no les va mucho linux que digamos:(
De todas formas creo que tampoco hay mucha gente en este foro que use linux... si no, mira esto:
http://www.solocodigo.com/foros/viewthread.php?tid=207 (http://www.solocodigo.com/foros/viewthread.php?tid=207)
Fue una peticion que hizo uno para abrir un nuevo foro sobre linux, la consecuencia, solo estamos esa persona y yo.... Si puedes/quieres apoyanos y busca a alguien (aunque no sea programador) que conozcas para que se una:).
Ah! y sin querer he encontrado otro manual de NCurses, esta en http://www.cgrsoftware.com/manuales_dir.htm?c_1 (http://www.cgrsoftware.com/manuales_dir.htm?c_1). Hay que registrarse primero para poder bajarte algo:(. Espero que este te ayude mas.
Saludos,
Tenesor
[Modificado el 2/28/02 por tenesor]
-
Hay otro tutorial en http://www.pameli.org/otros/tutorial-ncurses.html (http://www.pameli.org/otros/tutorial-ncurses.html)
-
Hola Setepo, me temo que es el mismo tutorial. Lo he visto en muchisimas paginas, pero es el mismo que hay en lucas.:(
Saludos,
Tenesor
-
El mismo tutorial esta en muchisimas paginas es el mismo :(, definitivamente no ahi buena documentacion en español sobre ncurses.
tensor, no pude ver la direccion que pusiste :(...
Adios
-
La dirección del manual?
Da igual, ya que ese manual me di cuenta de que es el mismo:( Tenia distinto formato pero, dicen lo mismo y son los mismos autores...
De todas formas, date una vuelta por www.cgrsoftware.com (http://www.cgrsoftware.com)
Saludos,
Tenesor
-
El Tema es bastante complejo, Puesto que el
Manejo del Teclado en un terminal depende
del tipo de terminal que este connectado a la red, wyse, vt-100 o un emulador de ANSI Por ejemplo.
Las Teclas del Cursor Arriba, Abajo,
Izquierda o Derecha; Las Teclas de Funcion
"F1" .. "F10", La Tecla ESC entre otras
No Transmiten su Valor ASCCI. Como en DOS
(Si No Recuerdo Mal: ESC = 27; CRUR_IZQ = 8,
CUR_DER = 11, etc).
Emiten una Secuencia de Escape que Va a Depender del Terminal que este Conectado. Esto esta definido en el archivo /etc/termcap
Puedes Obtener algo de informacion en el manual del linux Mediante la Orden man termcap. y existe una libreria para su manipulacion libtermcap.
Por Ejemplo Creo Recordar que la Capacidad
ki=Secuencia de Escape es el Cursor.
Por Ejemplo Para Un Terminal Ansi
ki=E[E "Se Lee ESC Corchete E"
Esto Significa Que Cuando Un Usuario Pulsa
La Tecla CUR_IZQ, el Terminal Emite Esta Secuencia.
Se Tal Manera Que Si Estas Usando la Funcion scanf Para Leer el Teclado, Deberas Leer
Byte a Byte Para Separar Las Secuencias de
Escape, e Imprimir el Texto.
Despues la Secuencia Debes Compararla Con el Termcap del Usuario que se Conecta, Mediante las Funciones de libreria Termcap.
Esto es bastante complicado Si quieres que la Aplicacion Funcione Con Cualquier Terminal que se Conecte.
Pero Si Conoces Los Terminales Que Se Van
a Conectar Por Ejemplo Emulacion VT-100,
Puedes Averiguar e la linea de Comandos en Modo Texto. Cual es la Secuencia Para Los Cursores. Pulsandolos y Dando enter. o
editas el archivo /etc/termcap y Buscas Las
Capacidades Para Mover Los Cursores.
y elaborar Un pequena Estructura Para interpretar Los Cursores.
/***
NO Estoy Verificando la Sintaxis
Solo Esquematizado la idea
*************************/
struct S_Cap
{
char *cap;
char *Secuencia;
unsigned char V_Correspondiente;
};Cap[]=
{
"ki","E[E",8;
"kr","E[D",11;
"ku"," ",12;
"kd"." ",10;
};
Si Me Envias el Codigo Puedo Revizarlo.
Tienes Razón Existe Muy Poca Informacion al
Respecto en Español.
-
Hola Zeus:
Aqui tiene un ejemplo de un codigo pequeño que desarrolle para explicarle a Murciego como mover algo por pantalla, aunque no era especificamente lo que el queria, pero en tu caso si solo quieres leer teclas usando Ncurses, es posible que te sea de ayuda:
#include <stdio.h>
#include <ncurses.h>
#define KEY_ESC ' 33'
main ()
{
int c,x=1,y=1;
initscr(); //Inicializo Ncurses.
keypad(stdscr,TRUE); //Permito el mapeo de las teclas de funciones en la pantalla.
while ((c=getch())==KEY_RIGHT) //Leo la tecla presionada.
{
mvprintw(x,y,"A"); //Me muevo a las coordenadas (x,y) e imprime la letra "A". (En tu caso el muñeco o lo que sea).
if (y<=10) y=y+1; //Aumenta las columnas.
else {x=x+1;y=1;printw("n");} //Aumenta la fila, hace la columna 1 y baja a una nueva linea.
}
refresh(); //Refresco de pantalla para sacar los caracteres.
endwin(); //Finalizar Ncurses.
}
Lo compilas: gcc -o nombre nombre.c -l ncurses
Ah y Bench, si ves este mensaje, yo tambien trabajo en Linux (SuSE) y puedo ser un miembro mas del foro para Linuxeros. Otra cosa te envie un mail y espero tu respuesta a wimogan@hotmail.com.
Bueno, espero haberte respondido.
Un saludo y cualquier cosa avisas.
-
Hola!
no me habia dado cuenta de que estaba inscrito en este foro. De hecho alguna vez me registre y le dije a mozilla que guardara la pass y ahora, que anduve buscando algo de info para usar la ncurses.h llegue por aca.
Bueno, hay bien poco info para la ncurses... en bulma hay un peque~o articulo. Aca les dejo el enlace.
http://bulma.net/body.phtml?nIdNoticia=2004 (http://bulma.net/body.phtml?nIdNoticia=2004)
Y creo que voy a empezar a visitar mas seguido este foro..
salu2!
Roberto
-
Bueno, hay bien poco info para la ncurses...
En este enlace está todo lo que puedas necesitar:
NCURSES Programming HOWTO (http://en.tldp.org/HOWTO/NCURSES-Programming-HOWTO/)
Un saludo.
Ruben3d
-
Hola! yo apollo todo lo que sea linux, es mas solo tengo un linux en su forma pura(shell), y el unico programa que tengo es gcc y g++, hace poco empese a programar en linux, de hecho es lo unico que hago en linux.
Saludos!
Long Live Rock&Roll And Linux Systems