0

我有一个 Spaceship 对象,它有 2 种方法。第一种方法是 move()

char touche;

if(_kbhit() != 0)
{
    touche = _getch();
    if(touche == 'k' || touche == 'l')
    {
        modifyPosition(touche);
    }
}

第二种方法是shoot()

char touche;

if(_kbhit() != 0)
{
    touche = _getch();
    if(touche == char(32))
    {
        if(nbLasers < 30)
        {
            addLaser();
            compteur++;
        }
    }
}

这两种方法都会在一段时间内被调用,一个接一个,所以第二种方法几乎永远不会起作用,因为我需要在它通过 move() 方法之后准确地按下“空格”。我想把这两种方法分开,有没有办法让它工作?

4

1 回答 1

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);
}
于 2013-03-30T17:34:14.557 回答