Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Фикс скорости Игры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать абстрактный класс для операции http://www.cyberforum.ru/cpp-beginners/thread727343.html
Опишите абстрактный класс объектов, для которых определены операции ==, =, !=. Операцию == определите полностью для случая, когда объекты являются строками символов. Покажите на примере хотя бы...
C++ Определить класс с именем STUDENT 1. Определить класс с именем STUDENT, содержащий следующие поля: а) Фамилия и инициалы; б) Номер группы; в) Успеваемость (массив из пяти элементов). Определить методы доступа к этим полям и... http://www.cyberforum.ru/cpp-beginners/thread727342.html
C++ вычисление в математических задачах
Найти площадь треугольника, две стороны которого равны a и b , а угол между этими сторонами γ
Обработка последовательностей (Если набор образует убывающую посл-ть, вывести 0...) C++
Дано целое число N и набор из N вещественных чисел. Если данный набор образует убывающую последовательность, то вывести 0; в противном случае вывести номер первого числа, нарушающего закономерность.
C++ Найти первый из номеров K, для которых выполняется условие... http://www.cyberforum.ru/cpp-beginners/thread727299.html
Дано число D (> 0). Последовательность чисел AN определяется следующим образом: A1 = 2, AN = 2 + 1/AN–1, N = 2, 3, ... Найти первый из номеров K, для которых выполняется условие |AK – AK–1| < D, и...
C++ Развлечения с массивом через указатель Инициализация указателей. Объявите массив, состоящий из 8 элементов типа short int. Объявите указатель на этот массив и присвойте ему адрес начала массива. Выведите адрес на экран. Присвойте... подробнее

Показать сообщение отдельно
extenup
54 / 54 / 3
Регистрация: 12.11.2011
Сообщений: 109
11.12.2012, 13:20
Я в своей игре сделал метод корректировки скорости всех элементов игры. Для этого надо узнать за какое время прошла очередная итерация цикла, а за тем обрабатывать это время так-чтобы каждому эл-ту игры прибавилась или вычитать скорость. Сделать скорость каждого эл-та игры зависимой от очередной итерации цикла.

Тогда игра будет всегда идти с одинаковой скоростью, даже если комп тормозит, либо слишком слабый, либо слишком мощный.

Кстати в конце цикла хорошо останавливать поток на 1 миллисекунду (что-то типа Sleep(1)). done = true; лучше вынести за цикл. Зачем её каждый её раз инициализировать?

Это должно выглядеть примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    bool bDone = false;
 
    while(!bDone)
    {
        int nTime = GetTickCount(); // Текущее время
 
        // Код игрового цикла...
 
        nTime = GetTickCount() - nTime; // Время за которое прошла очередная итерация
               
        // В этом методе/функции надо увеличить или уменьшить
        // скорость элементов игры
        CorrectTheSpeed(nTime);
 
        Sleep(1);
    }
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru