|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
24.08.2011, 10:50 | #1 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
Timer или While?
Делаю игрушку.
сейчас используется 2 таймера - основной цикл и анимация перемещения. из приятных моментов - проц почти не грузит. из неприятных - неприятная неопределенность как два таймера будут влиять друг на друга, а именно один из таймеров может менять переменные, которые использует второй таймер. а так же есть еще один баг с управлением, который я пока не допер как исправить, но мне кажется что это из-за использования 2х таймеров. с другой стороны, в большинстве исходников для игр, которые я скачивал весь игровой процесс запёхан в цикл while. типа while not Terminated do ... казалось бы - то что надо, но несколько напрягает в таком случае загрузка проца на 99%, даже если ничего тяжелого прога не делает. хотелось бы услышать комментарии по поводу использования таймера, и насколько адекватно использовать while, используют ли его в играх, или это халявный вариант в примерах? заранее спасибо всем ответившим. |
24.08.2011, 11:23 | #2 | |
Форумчанин
Регистрация: 13.05.2010
Сообщений: 670
|
Цитата:
|
|
24.08.2011, 11:39 | #3 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
таймеры не паралельны. PS: посмотрите тему "как вы относитесь к созданию игр на делфи" в разделе игр. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
24.08.2011, 12:01 | #4 | ||
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
Цитата:
Код:
Цитата:
Но даже если их будет дюжина в одном и том же потоке, обработчики их событий будут вызываться гарантированно последовательно. |
||
24.08.2011, 12:27 | #5 |
Форумчанин
Регистрация: 18.10.2010
Сообщений: 419
|
bulldog5293, смысл мне код показывать?
у меня ведь не "найдите ошибку в коде срочна! завтра сдавать!" а вопрос больше по принципам построения программы. так что конкретный код здесь особо не нужен. Пепел Феникса, предложение почитать тему в 900+ постов очень заманчиво! )) боюсь не осилю... mss, sleep? я много лестных слов слышал в его адрес. а что вы об нем думаете? sleep по-моему вообще всю программу останавливает... а вообще я придумал использовать единственный таймер, из которого запускать все остальное. что-то типа while, но begin ... end; вызываться будет по таймеру |
24.08.2011, 12:31 | #6 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
24.08.2011, 13:11 | #7 | |
Заблокирован
Регистрация: 27.05.2010
Сообщений: 1,099
|
Цитата:
|
|
24.08.2011, 14:06 | #8 |
personality
Старожил
Регистрация: 28.04.2009
Сообщений: 2,882
|
Я всегда старался придерживаться такого подхода :
Код:
Да, этот подход на VCL , но вообще его махом можно перенести и на нормальную очередь сообщений и ВинАПИ без перекроя. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Timer... | Teleport | Общие вопросы Delphi | 13 | 14.09.2011 17:02 |
timer(vc++) | NiCola999 | Windows Forms | 13 | 31.01.2011 06:00 |
timer | Erick Cartman | Помощь студентам | 4 | 12.03.2010 19:57 |
Timer | PAVEL315 | Компоненты Delphi | 16 | 20.12.2006 19:47 |
timer | Toxa | Компоненты Delphi | 6 | 06.12.2006 06:58 |