1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 15
1

Сделать так, чтобы функция setbox выполнялась раз в некоторое время

28.05.2011, 14:40. Показов 1068. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Суть такова: пишу игру, в стиле гонок. Снизу - спрайт автомобиля, сверху сбрасываются блоки-"препятствия". Их горизонтальная координата генерируется случайным образом в зависимости от системного времени. Вот фрагмент программы, выводящий координату и отправляющий её в функцию отрисовки препятствия:
C
1
2
3
4
5
6
7
8
void drop ()
{
int dropx, dropy=-5;
time_t t;
srand((unsigned) time(&t));
dropx=rand()%630+1;
setbox(dropx,dropy);
}
Внимание, вопрос: как сделать так, чтобы функция setbox выполнялась раз в некоторое время (через 0,5 сек, например)? По моим соображениям, надо взять начальное время отсчёта и пришивать к нему заданные промежутки, сравнивая системное время с полученным. Но это только соображение.
Как посоветуете реализовать?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2011, 14:40
Ответы с готовыми решениями:

сделать чтобы функция mail выполнялась один раз день
всем привет. у меня следующая проблема. есть программа, и при определенных условиях (у меня за три...

Как сделать так чтобы функция не выполнялась до того момента когда она получит второй параметр
Как сделать так чтобы функция не выполнялась до того момента когда она получит второй параметр....

как сделать чтоб команда выполнялась через некоторое время?
все в заголовке:)

Как сделать, чтобы по удержанию кнопки некоторое время вызывалась функция?
Здравствуйте. У меня такой вопрос: как сделать , чтобы по удержанию кнопки вызывалась другая...

6
13 / 13 / 4
Регистрация: 24.02.2011
Сообщений: 64
28.05.2011, 14:48 2
C++
1
DWORD timeGetTime(void);//в милисекундах
или ассемблер
C++
1
2
3
4
unsigned __int64 rdtsc() // в тактах
{
  __asm rdtsc;
}
0
1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 15
28.05.2011, 17:59  [ТС] 3
Не нашёл ничего вменяемого по этой функции, только упоминания о Visual studio и делфи.
Пишу на втором борланде на голом Си.
А есть ли в Си хоть какие-то способы просто отсчитать заданное количество времени? В миллисекундах - это будет шикарно.
0
13 / 13 / 4
Регистрация: 24.02.2011
Сообщений: 64
28.05.2011, 18:08 4
В борланде не работал. Но думаю таймгеттайм работает везде, вам нужен аналог winmm.lib. Описание здесь. Вызывать
C
1
DWORD start=timeGetTime();
и постоянно сравнивать пока timeGetTime()!=5000.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
28.05.2011, 18:22 5
Цитата Сообщение от Restroom Посмотреть сообщение
Не нашёл ничего вменяемого по этой функции, только упоминания о Visual studio и делфи.
Пишу на втором борланде на голом Си.
А есть ли в Си хоть какие-то способы просто отсчитать заданное количество времени? В миллисекундах - это будет шикарно.
Стандартная функция clock()/CLOCK_PER_SECOND - это и будет в миллисекундах
0
1 / 1 / 0
Регистрация: 07.12.2010
Сообщений: 15
28.05.2011, 18:25  [ТС] 6
сравнивать пока timeGetTime()!=5000
Но ведь функция возвращает системное время - скорее всего, значение сразу будет превышать 5000. К тому же, подключается, по идее, заголовком windows.h и библиотеками, но компилятор пишет, что функция должна иметь прототип.

Добавлено через 50 секунд
ValeryLaptev, а как узнать значение CLOCK_PER_SECOND?
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
28.05.2011, 18:30 7
Опечаточка с именем: CLOCKS_PER_SEC - так будет правильно. Или CLK_TCK - старое название
А поискать в файле time.h
0
28.05.2011, 18:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2011, 18:30
Помогаю со студенческими работами здесь

Организовать меню так, чтобы при каждом варианте выбора выполнялась определённая функция
Подскажите пожалуйста, как правильно организовать такого рода меню с под-менюшками: 1. что-то;...

Работа с SQLCLR - Сделать так, чтобы процедура выполнялась на сервере
Подскажите, вот у меня процедура на C#, которая берет указанную таблицу и что-то с ней делает....

Можно ли сделать так чтобы скрипты выполнялись несколько раз через определенное время?
Можно ли сделать так чтобы скрипты выполнялись несколько раз через определенное время.

Как сделать, чтобы при нажатии на кнопку выполнялась функция?
Простите, я только начинаю работать с QT и я не знаю Как сделать чтобы при нажатии на кнопку...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru