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

Неправильно работает таймер SDL_AddTimer - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как работает калькулятор? http://www.cyberforum.ru/cpp-beginners/thread990290.html
100500-й раз задаю вопрос про этот калькулятор. Возможно, сам виноват - формулировал неточно. Ну, так вот: пожалуйста, опишите на примере введённого выражения (например) 21 + 3* 12 (с сохранением пробелов) или на своём более удачном, цепочку вызовов функций. Вот так я понял: get_token() в main(): - cin.get(ch) вводит в поток 21 + 3* 12, isspace(ch) прерывает цикл, когда встречает пробел после...
C++ Перепишите пожалуйста код с языка Pascal на C++ Вот сам код. {$N+} uses crt; const nmax=60; function Step2(n:byte):extended; var p:extended; i:byte; begin p:=1; http://www.cyberforum.ru/cpp-beginners/thread990283.html
C++ Даны два класса: ellipse и circle
Помогите решить пожалуйста!Да,я чайник.. :( Даны два класса: ellipse и circle. Объекты этих классов могут быть отображены на экране с помощью функции-члена draw и перемещены с помощью функции-члена move_to. Создать объекты указанных классов, начертить их в нескольких положениях.
C++ Не работает getline
Есть прога, которая считает предложения и выводит самое длинное.Есть главный кейс с меню. В первом пункте кейса есть гетлайн, но при выборе этого пункта прога прогоняет кейс до ввода переменной для выхода, не прося ввести текст. Если getline заменить на cin, то он просит ввести текст, но cin читает только до пробела... Почему не работает getline в case. ПЫ.СЫ. Написано все очень криво >_< // 5...
C++ найти и вывести объем тетраэдра http://www.cyberforum.ru/cpp-beginners/thread990264.html
Как найти объем через координаты вершин? Как его написать? //На вход подается некоторое количество тетраэдров(координаты вершин). //Отсортировать и вывести их по возрастанию объемов. #include <iostream> #include <stdio.h> #include <locale> #include <math.h> using namespace std;
C++ целочисленный массив X(n) ребят помогите пожалуйста, не могу сообразить В целочисленный массив X(n) после каждого нечетного элемента вставить максимальный простой элемент этого же массива. Определить среднее арифметическое простых элементов массива до и после вставки. Зарание спасибо. подробнее

Показать сообщение отдельно
dimakozyr
 Аватар для dimakozyr
157 / 24 / 1
Регистрация: 17.08.2013
Сообщений: 461
28.10.2013, 11:14     Неправильно работает таймер SDL_AddTimer
Бобры появляются каждые 2 секунды.
Через 6 секунд срабатывает таймер и они появляются в 2 раза быстрее.
Если все жизни вышли, таймер должен удаляться, а время отображения становиться опять 2 секунды.
Но почему-то если сыграть одну игру, проиграть, нажать play, бобры сразу появляются с большой скоростью.

// SceneElements.h
C++
1
2
3
4
class SceneElements {
    double& getTimeToDisplayBeaverInSeconds()
    { return timeToDisplayBeaverInSeconds; } // По умолчанию 2
};
// SceneElements.cpp
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
Uint32 callback(Uint32 interval, void *param) {
    SceneElements* p = (SceneElements*)param;
 
        // Уменьшение времени отображения бобров в 2 раза
    p -> setTimeToDisplayBeaverInSeconds(
        p -> getTimeToDisplayBeaverInSeconds() /= 2;
    return interval;
}
 
void SceneElements::scene_2_events() {
    // Запуск таймера. 6000 - время (мс), через которое вызовется callback()
    SDL_TimerID timer_id = SDL_AddTimer(6000, callback, this);
 
    // Некоторый код
 
    if ( /* Если жизней ноль */ ) {
    SDL_RemoveTimer(timer_id);  // Удаление таймера
 
        // Время отображения бобров устанавливается в 2 секунды
    timeToDisplayBeaverInSeconds = MAX_TIME_TO_DISPLAY_BEAVER;  
 
        // Количество жизней устанавливаем в максимум
    pDrawScene -> setLivesOfPlayerToMax();
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru