таймер не сбрасывается в функции sfml

0
void strzalObcy(sf::Clock clock, sf::Sprite pociskSprite,sf::RenderWindow &window,int przesuniecie ){
    sf::Time timer = clock.getElapsedTime();
    std::cout << timer.asSeconds() << std::endl;
    if (timer.asSeconds() >= 1.0f )
    {
        pociskSprite.setPosition(100,przesuniecie);
        window.draw(pociskSprite);
        przesuniecie+=50;
        clock.restart();
    }
}

К сожалению, мои часы не сбрасываются, я не знаю, почему, и я действительно не знаю, как это исправить: /Window рисовал только один раз pociskSprite, в 100,50

Теги:
sfml

2 ответа

0
Лучший ответ
void strzalObcy(sf::Clock& clock, sf::Sprite pociskSprite,sf::RenderWindow &window,int przesuniecie ){
    sf::Time timer = clock.getElapsedTime();
    std::cout << timer.asSeconds() << std::endl;
    if (timer.asSeconds() >= 1.0f )
    {
        pociskSprite.setPosition(100,przesuniecie);
        window.draw(pociskSprite);
        przesuniecie+=50;
        clock.restart();
    }
}

Как сказал Хира, ваша функция принимает значение, а не ссылку. Используйте & для передачи ссылки вместо значения.

0

Ваша функция принимает значение, а не ссылку, поэтому вы восстанавливаете копию, а не оригинал

  • 0
    исправлено, спасибо :) я не могу проголосовать за тебя :(
  • 0
    @kozi Тогда просто установите его как ответ (отметьте галочкой слева от ответа, если я правильно помню). ;-)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню