Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - LeonardoPR2096

#1
Hola necesito ayuda con esto. estoy tratando de programar el salto de un personaje (en este caso un simple '*' ) pero me pasa algo raro cuando salto y el '*' esta en el aire presiono otra vez la tecla de saltar y al momento de llegar abajo vuelve a saltar. osea el kbhit() esta leyendo y guardando?? la tecla presionada. y de hecho solo quiero que se compruebe si se presiono una tecla cuando estoy en el suelo otra vez.
este es el codigo.

#include <iostream>
#include <conio.h>
#include <windows.h>

using namespace std;

int x=10, y=34;
int dy=1;
char tecla=0;

void dibujar()
{
   gotoxy(x,y); cout<<"*";
}

void borrar()
{
   gotoxy(x,y); cout<<" ";
}

void salto()
{   
   if(y==34){ //la condicion es para que solo compruebe si se presiona una tecla cuando el personaje esta en el suelo. pero por alguna razon lee la tecla                         //aunque ''y'' no sea 34.
   if(kbhit())
   {
   
       tecla=getch();

   }
}

   if(tecla=='w' )
   {
      borrar();
      y-=dy;
      dibujar();
      
      if(y<=25)
      {
         dy=-dy;
      }
      if(y==34)
                {
                   tecla=0;
         dy=-dy;
      }
   }   
}

int main()
{   
        dibujar();
   while(1)
   {
      salto();
      Sleep(80);
   }
   return 0;
}