2016-10-12 38 views
-5

У меня проблема с гладким движением в C++ w/sfml. Кто-то может сделать алгоритм для плавного перемещения формы/спрайта на 15 px (спрайт/форма 15 px) нажатием кнопки? Благодарю.Как сделать плавное перемещение в C++, SFML

+0

Что ваши попытки создать такой алгоритм был? –

+0

Я не знаю, как сделать движение SMOOTH, я знаю «фиксированное» движение (идентификатор.move (x, y)). – BlackOHAWK

+0

Нет никакого «плавного» или «фиксированного» движения, просто используйте значения меньшего размера. – Treycos

ответ

1

Поскольку многие другие программисты могли бы хотеть знать, что здесь есть, но в следующий раз задать более точный вопрос
Вот мой способ сделать плавное движение:

Возьмите первоначальное движение, позволяет сказать, 25, 15 в секунду
Сделайте петлю, как это:

void GameEngine::GameLoop() 
{ 
    sf::Clock timer; 
    sf::Time tickRate; 

    sf::Vector2f movement(25.0,15.0); // Your movement vector 

    while(/* wahtever */){ 
     tickRate = timer.restart(); 
     yourShape.move(movement * ((float)tickRate.asMilliseconds()/1000)); //Move your shape depending on the time elapsed between two frame 

     yourWindow.clear(); 
     yourWindow.draw(yourShape); 
     yourWindow.display(); 
    } 
} 
+0

Ошибка при выполнении этого: ** движение ** * (поплавок) tickRate.asMilliseconds() **/** 1000 – BlackOHAWK

+0

Это хорошо работает .. Я не понимаю вашу проблему – Treycos

Смежные вопросы