释放按钮时初始化一个对象,然后继续更新它

时间:2018-11-25 12:40:21

标签: c++ button sfml

在C ++中,使用SFML框架,我试图检查何时释放空格键,然后计算出子弹的踪迹,然后将其绘制到屏幕上;但是我正在尝试使用子弹阵列。 我使用了for循环:

for (int i = 0; i < 5; i++)
{
    if (cl.getElapsedTime().asMilliseconds() >= 50.0f) spacePressed = false;
    if (spacePressed == false && bul[i].fired == false)
    {
        bul[i].moveCtrl(event, deg, spacePressed);
        cl.restart();
    }
 }

要循环遍历数组并调用moveCtrl;注意:cl是一个时钟,由项目符号创建。 然后在moveCtrl中:

bulDeg = deg;
//Sets fired to true if Space bar is pressed
    if (!fired)
    {
        if (event.type == Event::KeyPressed)
        {
            switch (event.key.code)
            {
            case Keyboard::Key::Space:
                fired = true;
                bulDeg = deg;
                bulX = std::cos(bulDeg * (3.14159f / 180.0f)) * bulSpeed;
                bulY = std::sin(bulDeg * (3.14159f / 180.0f)) * bulSpeed;
                spacePressed = true;
                break;
            }
        }
     }

我计算窗饰并将spacePressed设置为true;在50毫秒后又将其设置为false的另一个周期后,fired仅用于draw()函数来知道如何正确绘制它。 但是结果却很奇怪:当我释放空格键时,什么也没发生,在释放5次后它仍然起作用,但是所有子弹都被紧密地发射了。 我已经尝试过重新安排它,但是它似乎不起作用。

0 个答案:

没有答案