Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Ai Toi en 30 Octubre 2008, 12:35 pm



Título: Ayuda T_T alguien sabe como usar la funcion "kbhit()"?
Publicado por: Ai Toi en 30 Octubre 2008, 12:35 pm
hola
estoy haciendo un programa en c++ builder 6
pero a mi no me salen las teclas,miren en mi programa uso la funcion kbhit() ,pero lo que necesito es que cuando mi trabajo compile ,ingrese cualquier tecla como A,B,a,b,5 y que eso aparezca en mi pantalla pero yo no pido al usuario que ingrese nada solo el va a presionar las teclas y estas tienen que aparecer cuando compile ,pero cuando lo compilo e ingreso esas teclas mi programa para
mi pregunta es que como lo hago para ingresar las teclas cuando compile usando kbhit
miren este es mi codigo
solo me faltan como hago para ingresar las teclas cuando compile mi programa
pliss necesito ayuda tengo que entregar esto a mas tardar mañana en la tarde T_T

#include<stdio.h>
#include<conio.h>
#include"UCaracter.h"
#include<windows.h>
void main()
{ int c;

 CCaracter *pO;
 pO= new CCaracter(c,WHITE,1,1,1,1);
 int x;
  int y;
  gotoxy(x,y);
  for( x=1;x<81;x++)
  {        gotoxy(x,12);
  printf("_");
  }
  for( y=1;y<25;y++)
  {
  gotoxy(40,y);
  printf("|");  }

while(kbhit())
  {   char c=getch();  randomize();
 if(c==97)
    { pO->Muevete();
     Sleep(100);
    }

 
 }

 

 getch();
 delete pO;
}

esta es el unit para caracter

//---------------------------------------------------------------------------

#pragma hdrstop
#include<conio.h >
#include "UCaracter.h"
//---------------------------------------------------------------------------

CCaracter::CCaracter(char car,int col,int pX,int pY,int pDesx, int pDesy)
 {
  caracter=car;
  color=col;
  X=pX;
  Y=pY;
  DesX=pDesx;
  DesY=pDesy;


 }
CCaracter::~CCaracter()
{
}
void CCaracter::Muevete()
{
 Ocultate();
 X=X+DesX ;
 Y=Y+DesY;
 if((X>=80)||(X<=1))
DesX=DesX*(-1);
  if((Y>=24)||(Y<=1))
 DesY=DesY*(-1);
 Muestrate();

}
void CCaracter::Ocultate()
{
 textcolor(0);
 gotoxy(X,Y);
 cprintf("%c",caracter);
}
void CCaracter::Muestrate()
{textcolor(color);
 gotoxy(X,Y);
 cprintf("%c",caracter);
}

 char CCaracter::Set_caracter()
 {
  return(caracter);

 }
//---------------------------------------------------------------------------

#ifndef UCaracterH
#define UCaracterH
//---------------------------------------------------------------------------
class CCaracter
{private:
  char caracter;
  int color;
  int X,Y;
  int DesX,DesY;


 public:
 CCaracter(char car,int col,int pX,int pY,int pDesx, int pDesy);
 ~CCaracter();
 char Set_caracter();
 void Muevete();
 void Ocultate();
 void Muestrate();


};







#endif


Título: Re: Ayuda T_T alguien sabe como usar la funcion "kbhit()"?
Publicado por: Rozor en 30 Octubre 2008, 23:03 pm
Código
  1. while(!kbhit()) // <---- falta !
  2.  {   char c=getch();  randomize();
  3. if(c==97)
  4.    { pO->Muevete();
  5.     Sleep(100);
  6.    }
  7.  
  8.  
  9. }
  10.  

No lo he comprobado si te falla ahi eso falta, pero no uso borland asique si sigue fallando pega donde falle :)


Título: Re: Ayuda T_T alguien sabe como usar la funcion "kbhit()"?
Publicado por: Nico01 en 19 Julio 2015, 17:07 pm
yo tambien estoy usando el kbhit(), y no se si no lo pusiste pero cuando declaras el char c = getch(), te falta su utilizacion:
//prueba con srand
#include<time.h>
#include<stdlib.h>
//dentro del main va esto
srand(time(NULL));
while(kbhit())
  {   char c=getch(); 
       c=rand()%100;
       c;
       if(c==97)
             { pO->Muevete();
                Sleep(100);}
                                 

 
 }