Пишу простенькую игру на sfml
. Не буду вдаваться в подробности - опишу кратко, как все реализовано.
У меня есть игровой цикл, в котором отслеживаются event'ы
и рисуется графика игры (по примеру туториалов). На данный момент в игре есть мой персонаж - он может двигаться и стрелять.
Схематически, игровой цикл выглядит так:
sf::RenderWindow window(sf::VideoMode(600, 800), "Test");
sf::Event _event;
while (window.isOpen()) // Игровой цикл.
{
while(window.pollEvent(_event) // Цикл event'ов.
{
...
}
// Рисуем графику.
...
}
Теперь я хочу добавить противника - он появляется вверху карты и идет вниз (не постоянно - иногда встанет постоит немного и пойдет дальше, т.е., по задумке он не предсказуемый).
Но тут возникла проблема. Я хотел, чтобы в цикле с вероятностью 50%
противник спускался вниз. Вроде-как все OK:
sf::RenderWindow window(sf::VideoMode(600, 800), "Test");
sf::Event _event;
while (window.isOpen()) // Игровой цикл.
{
while(window.pollEvent(_event) // Цикл event'ов.
{
...
}
if(rand()%2) // Вероятность 50%.
{
// Двигаем вниз нашего противника.
}
// Рисуем графику.
...
}
Но нет. Противник молниеносно пробегает по карте вниз и исчезает. Понимаю почему так происходит - цикл отрабатывает много раз за секунду и противник движется вниз.
Итак, что же я хочу? Я хочу чтобы противник плавно шел вниз, иногда замирая на месте. Пожалуйста, подскажите как мне это сделать - опишите идею, а с реализацией справлюсь сам.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
В классе getpoint есть функция show, её я обьявил как дружественную для класса point, но почему-то в строке cout << "A = " << objecta << endl << "B = " <<...
В данном примере при попытке создания массива output, возникает ошибка под new: «для агрегатного объекта требуется инициализация
Написал небольшой модуль для lua51 (в качестве эксперимента) на с++ (понятное дело функции экспортированы в C)
Друзья, помогите с задачейКак сделать так, чтобы запись в файл производилась из всех файлов проекта(например