Witam, czy w c++ istnieje jakaś funkcja typu getkeydown? Mój problem polega na tym, że chce aby "ruch" gracza wykonywał się tylko po wciśnięciu odpowiedniego klawisza i jest to możliwe w moim programie, natomiast gracz się przemieszcza także podczas trzymania tego klawisza tak długo dopóki trzymam ten klawisz. Czy jest jakaś możliwość aby każde kolejne przesunięcie odbywało się tylko po puszczeniu klawisza i ponownym naciśnięciu, a nie tak jak u mnie jest podczas trzymania?
Oto fragment programu odpowiedzialny za ruch:
#include <iostream>
#include <windows.h>
#include <conio.h>
using namespace std;
class Player
{
public:
int x,y;
};
Player player;
char c;
void gotoxy(int x, int y)
{
COORD xy;
xy.X=x;
xy.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),xy);
}
void moving()
{
if (c=='d')
{
gotoxy(player.x,player.y);
cout<<" ";
player.x+=1;
gotoxy(player.x,player.y);
cout<<char(24);
}
}
void playermove()
{
c='0';
if (_kbhit()==1)
c=getch();
}
int main()
{
while(c!=char(27))
{
moving();
playermove();
}
return 0;
}