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

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

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

Показать сообщение отдельно
Refery
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 16
11.12.2012, 12:40     Фикс скорости Игры
Здравствуйте ув. программеры.

Очень прошу помочь с подключением таймера для фиксирования скорости передвижения объектов в игре (пишу с помощью openGL.
т.к. в зависимости от мощности компа скорость поворота (допустим космического кораблика) будет разной на разных компах. Слышал что это как-то можно исправить с мопощью отслеживания прошедшего времени с момента нажатия на клавишу управления.
Например при зажатии клавиши для поворота на 500 миллисекунд объект (кораблик) должен повернуться на 180 градусов. и соответственно при 250 мс на 90, и т.п.

привожу задействованные в данном процессе отрывки кода:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <cstring>
#include <windows.h>        // Заголовочный файл для Windows
#include <stdio.h>          // Заголовочный файл для стандартного ввода/вывода
#include <stdlib.h>
#include <glut.h>           // Заголовочный файл для библиотеки OpenGL32
#include <glaux.h>          // Заголовочный файл для библиотеки GLaux
#include <math.h> 
#include "SOIL.h"               //библиотека для загрузки png  как текстуры в openGL с альфа каналом.
 
...................................................
 
enum {left, right, up, probel, one, two, three, four, five, six};   //for ship contol
 
class CSpace
{
    GLfloat zRot,               //поворот кораблика стрелками
........................................
public:
........................................
    GLvoid control(GLint button)
    {
        switch (button)
        {
        case left:                      // <------вот ЗДЕСЬ хотелось бы пофиксить с помощью таймера
            zRot+=2.5f;                 //поворот влево
            if(zRot>=360.0f) zRot -= 360.0f;    //сброс угла
            if(zRot<0.0f) zRot += 360.0f;       //сброс угла
            break;
        case right: 
            zRot-=2.5f;      
            if(zRot>=360.0f) zRot -= 360.0f;
            if(zRot<0.0f) zRot += 360.0f; 
            break;
        default:
            break;
        }
    }
};
 
GLvoid StartGameSettings()          //for crate objects
{
    Shuttle.SetPosition(ship);
}
 
 
int WINAPI WinMain(  ............... )        // Состояние отображения окна
{
StartGameSettings();
.................................
while( !done )                // Цикл продолжается, пока done не равно true
    {
        done = true;          
                if(keys[VK_ESCAPE])        // Было ли нажата клавиша ESC?
                {
                    done = true;      // ESC говорит об останове выполнения программы
                }
                DrawGLScene();        // Рисуем сцену
                SwapBuffers( hDC );    // Меняем буфер (двойная буферизация)
 
                /* from here place will start description for keyboard  */
 
                if (keys[VK_LEFT])     // если нажата клавиша стрелка влевао, то...
                {
                    Shuttle.control(left);
                }
                if (keys[VK_RIGHT])     
                {
                    Shuttle.control(right);
                }
.................................................................................
                
            }
        }
    }
    return ( msg.wParam );              // Выходим из программы
}
Буду благодарен, если покажите пример на основе моего кода.
Желательно как можно подробней, и понадобятся ли какие нибудь дополнительные заголовочные файлы?
Заранее спасибо!

Добавлено через 1 минуту
типы GLfloat = float
GLint = int
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:53. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru