我有一个有两种方法的Spaceship对象。第一种方法是move()
char touche;
if(_kbhit() != 0)
{
touche = _getch();
if(touche == 'k' || touche == 'l')
{
modifyPosition(touche);
}
}
第二种方法是射击()
char touche;
if(_kbhit() != 0)
{
touche = _getch();
if(touche == char(32))
{
if(nbLasers < 30)
{
addLaser();
compteur++;
}
}
}
这两种方法都会在一段时间内一个接一个地调用,所以第二种方法几乎不会起作用,因为我需要在经过move()方法之后完全按下“Space”。我想保持2种方法分离,有没有办法使这项工作?
答案 0 :(得分:0)
一种简单的方法是制作新方法read_keyboard()
。
该功能应存储键盘状态,而您的其他方法只能读取该存储状态。
if(_kbhit() != 0)
{
// I'm only explicitly writing "this->" to show that it's a member variable.
this->touche = _getch();
}
else
{
this->touche = 0;
}
例如,move
现在变为:
if(touche == 'k' || touche == 'l')
{
modifyPosition(touche);
}