2016-04-22 8 views
0

Я пытаюсь сделать 2D-игру с C++, используя SFML. Я нарисовал спрайт, и теперь я хочу, чтобы этот спрайт автоматически двигался в случайном направлении, и когда он ударил стену, он отскакивал и менял направление. Я не знаю, как делать автоматическое перемещение спрайта, что отскок от стены ... Поэтому, пожалуйста, помогите мне.C++ SFML - Как сделать прыгающий спрайт?

ответ

1

sf::Sprite имеет функцию-член setPosition (float x, float y), которую вы можете использовать, чтобы установить положение спрайта до его нарисования. Перемещая спрайт на новую позицию в каждый кадр, вы создаете впечатление движения, похожее на мультфильм. Сравнивая положение спрайта с положением других элементов в вашей сцене, как стены, вы можете рассчитать, когда 2 объекта попали и предпримут соответствующие действия. Обычно это работает так:

  • Сброс часов в начале нового кадра, вы можете использовать sf::Clock или хроно C++ 's, например.
  • Обновление положение всех элементов сцены, которые должны быть движущимися с чем-то вроде: ObjectSpeed * Previous frame time
  • Нарисуйте рамку
  • Экономьте время, истекшее для вычисления следующего кадра
  • Loop
Смежные вопросы