Miércoles 20 de Noviembre de 2024, 18:35
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: ¿Como saber si na tecla esta pulsada?
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Re: ¿Como saber si na tecla esta pulsada? (Leído 7603 veces)
Murciego
Nuevo Miembro
Mensajes: 23
Re: ¿Como saber si na tecla esta pulsada?
«
en:
Martes 1 de Octubre de 2002, 11:47 »
0
¿Como podría saber si una tecla esta pulsada o no?
Es para intentar hacer un jueguecito, y asi, por ejemplo, hacer que si la z esta pulsada, se mueva el muñeco hacia la izquierda, y si esta la c pulsada, a la derecha etc....
Me gustaría hacerlo en c++, sin usar funciones de windows.
Por favor, mandarme también un e-mail con la respuesta a
j_murciego@hotmail.com
Gracias
Tweet
kenshin
Miembro activo
Mensajes: 29
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #1 en:
Sábado 19 de Octubre de 2002, 11:06 »
0
Hola:)
Espero que esto te sirva de ayuda:
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
Murciego
Nuevo Miembro
Mensajes: 23
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #2 en:
Jueves 24 de Octubre de 2002, 13:05 »
0
Muchas gracias por la información
Arleko
Nuevo Miembro
Mensajes: 19
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #3 en:
Lunes 11 de Noviembre de 2002, 06:42 »
0
Esta exelente la respuesta de kenshin, pero te doy un consejo personal y mas facil, mira
:
primero captura la tecla pulsada en una variable tipo char, despues la comparas con la tecla de tu preferencia en su valor ascii,,, ejemplo:
Sabes que ESC su valor es 27.
bueno puedes hacer un ciclo mientras que no se pulse ESC de la siguiente manera.
void funcion()
{
char tecla;
//Aqui ponemos el ciclo
do{
tecla=getch();//Esperamos que se pulse la tecla
}while(tecla!=27)//27 es su valor de ESC en ASCII
Bueno espero te ayude un poco, nos vemos
Tu amigo:
Visita
http://www.mundoarleko.vze.com
Murciego
Nuevo Miembro
Mensajes: 23
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #4 en:
Miércoles 20 de Noviembre de 2002, 12:47 »
0
Hola de nuevo
No he conseguido compilar el codigo que me manda kenshin. Lo he copiado tal cual añadiendo las variables tecla[] y definiendo SI y No, pero al ir a compilar me da un error estraño.
Estoy usando Turbo C 1.01
No se nada de ensamblador ni de las interrupciones. ¿Alguien a conseguido que funcione? Me gustaría conseguir un fragmento de codigo que funcione y donde solo tenga que mirar a la tecla[].
Muchas gracias
Por cierto, si a alguien le interesa el codigo del minijuego que estoy haciendo se lo paso sin ningun problema. Es parecido al tetris pero disparando a las piezas.
Mi e-mail es
j_murciego@hotmail.com
Arleko
Nuevo Miembro
Mensajes: 19
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #5 en:
Lunes 25 de Noviembre de 2002, 00:32 »
0
Pasame el codigo deel minijuego,,, para ver que aprendo...
Visita
http://www.mundoarleko.vze.com
Murciego
Nuevo Miembro
Mensajes: 23
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #6 en:
Miércoles 27 de Noviembre de 2002, 14:17 »
0
Aun no esta acabado, me falta lo del teclado y hacer el algoritmo para que la máquina juegue y algun detallin sin importacia.
Si quieres te lo puedo pasar asi, o cuando lo termine
Un saludo
wimogan
Nuevo Miembro
Mensajes: 22
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #7 en:
Jueves 28 de Noviembre de 2002, 20:54 »
0
Hola:
Ok, si realmente quieres que al mantener una tecla pulsada el muñeco o lo que sea se mueva a la izquierda, te recomiendo que utilices "getch", que lo puedes encontrar en la "conio.h" si usas windows o en la "curses.h", "ncurses.h",(me parece que existe otra libreria que no recuerdo cual), si utilizas linux.
Suporngo que para moverte utilizarias "gotoxy" de la "conio.h" si trabajas en windows.
Para linux podrias usar "move", "wmove", "otras", de la "curses.h" y "ncurses.h".
Ah, en Linux ,que yo sepa, no existe ninguna libreria que tenga definido el "gotoxy". Pero lo puedes usar sin necesidad de ninguna libreria, mediante la directiva o instruccion:
#define gotoxy(x,y);printf(" 33[%d;%df",x,y);
Un ejemplo de forma rapida podria ser:
Para linux:
#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
Bueno, espero haberte respondido.
Un saludo y cualquier cosa avisas.
Murciego
Nuevo Miembro
Mensajes: 23
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #8 en:
Jueves 28 de Noviembre de 2002, 22:59 »
0
Hola wimogan
El problema de la solución que me dices es que si poner getch(), el sistema se para hasta que se pulse una tecla, y eso no es lo que yo quiero.
Lo que yo quiero es saber que teclas estan pulsadas y que teclas no,y no esperar a que se pulse una tecla. No se si me explico bien.
La solución dada por kenshin es la ideal, si la pudiera hacer funcionar. Alli se tiene una matriz teclado[] que se actualiza cuando se lo dices y que te dice si la tecla i esta presionada o no lo esta.
Otra solución que he visto por el codigo de algunos juegos, es usar la función kb??? pongo ? porque no me acuerdo el nombre exacto, que devuelve 0 o 1 dependiendo de si hay alguna tecla pulsada. Entonces si hay una tecla pulsada se usa getche() para obtenerla. Pero el problema es...¿que pasa si hay tres teclas presionadas a la vez?
La solución es hacer funcionar el programilla que viene en teclado.doc de kenshin, pero ese tipo de programa a mi se me escapa. No entiendo bien lo que hace.
Si alguien es capaz de hacerlo funcionar se lo agradecería mucho.
Un saludo y gracias a todos
Javier Murciego
wimogan
Nuevo Miembro
Mensajes: 22
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #9 en:
Jueves 28 de Noviembre de 2002, 23:56 »
0
Ok, en ese caso no tengo una solucion inmediata a tu problema, pero tal vez prodria ayudarte diciendote que la funcion que empieza con "kb" que dices que se te olvido, posiblemente sea la "kbhit" de la "conio.h" para windows, y con respecto a la solucion de kenshin, voy a tratar de interpretarla a ver si la entiendo y te puedo ayudar.
Dicen que dos cabezas pienzan mejor que una!.
Pero bueno, aun asi, trata de ver si la funcion "kbhit" te puede ayudar en lo que el hacha va y viene.
Mientras tanto, suerte.
Arleko
Nuevo Miembro
Mensajes: 19
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #10 en:
Lunes 2 de Diciembre de 2002, 20:49 »
0
Hola Murcielago,,, si, asi pasamelo,,, a ver si yo lo acabo,,,,
miren
para las teclas pulsadas hagan lo siguiente
char op;
op=getch();
switch(op)
{
case /*(Aqui ira el codigo hexadecimal)*/:
/*
lo que quieren que haga al pulsar la tecla;
*/
break;
}
/***************************/
//y para saber el codigo hexadecimal de una tecla haz lo siguiente:
char tecla;
tecla=getch();
printf("Tecla: %c,,, ASCII: &d,,,,Hexadecimal 0x%x00",tecla,tecla,tecla);
getch();
y me cae que si les funciona:o
Visita
http://www.mundoarleko.vze.com
Avalon
Miembro MUY activo
Mensajes: 448
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #11 en:
Lunes 2 de Diciembre de 2002, 21:48 »
0
Hola Murciego,
Echale un vistazo a este código, a ver si te sirve:
http://mundovb.net/mundoc/pelota.htm
Salu2,
Avalon
Murciego
Nuevo Miembro
Mensajes: 23
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #12 en:
Lunes 2 de Diciembre de 2002, 22:34 »
0
Gracias Avalon
Ya había mirado ese codigo y me resulto muy util. Gracias de todas formas.
Un saludo
Satyr
Miembro activo
Mensajes: 33
Re: ¿Como saber si na tecla esta pulsada?
«
Respuesta #13 en:
Lunes 20 de Enero de 2003, 03:23 »
0
puedes hacerlo de las siguiente manera
main()
{
char c;
do{
if(kbhit())
{
clrscr();
c=getch();
printf("%c = %d",c,c);
}
}while(c!=27);
}
galator
Nuevo Miembro
Mensajes: 2
¿Como saber si na tecla esta pulsada?
«
Respuesta #14 en:
Martes 21 de Enero de 2003, 17:55 »
0
porque no pruebas con esto
main()
{
char tecla;
do
{
......
if(kbhit())
{
tecla=getch();
case .....
....
}
}while(tecla!=27);
}
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: ¿Como saber si na tecla esta pulsada?