Ayuda T_T alguien sabe como usar la funcion "kbhit()"?

Iniciado por Ai Toi, 30 Octubre 2008, 12:35 PM

0 Miembros y 1 Visitante están viendo este tema.

Ai Toi

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

Rozor


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

 
}


No lo he comprobado si te falla ahi eso falta, pero no uso borland asique si sigue fallando pega donde falle :)
out in the streets they call it murder....

Nico01

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);}
                                 

 
}