Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Улучшеная альтернатива таймеру (!!!) Добавлено: 16.09.03 12:37  

Автор вопроса:  Morpheus | Web-сайт: xury.zx6.ru

Не знаю, может такое было и до меня, но всё же...
Короче, когда я раньше писал игрушки (гоночки, 2D стрелялки) я юзал таймер - я ненавидел весь мир и даже хотел на делфи перейти, потому что у таймера была слишком маленькая частота (тормозил короче). Когда мне нужна была быстрая прорисовка или быстрое, но плавное движение объектов, таймер мне не помогал. Я хотел за DirectDraw и Direct3D взяться, но сами понимаете, не каждому это дано.
Можно сделать и API' шный таймер, но я не знаю как.
Мне пришла в голову ещё одна идея - использовать цикл, но даже если написать в нём DoEvents он жрёт все ресурсы процессора, и вообще [sensored] полный.
Я подумал немного... И тут я подпрыгнул от радости и крикнул - "Блин!!! Как же я раньше до этого не догадался!?" До меня дошло. Всё решила одна строка! Вместо таймера я написал:

Begin:
DoEvents
Sleep 4 'ВОТ ЭТА СТРОКА!
'а тут сам рабочий код
goto Begin

И как вы думаете что? Мои гоночки (хоть и примитивные сами по себе, но сильно тормозившие) работали с АФИГИТЕЛЬНОЙ скоростью. Получился чумовой экшн. И процессор (AMD DURON 850) грузился менее чем на 20%! Я спокойно играл с WinAmp'ом и AVP сканером.
Не знаю, может не такое уж ето открытие, но для меня прорыв. И, кстати, все примеры гоночек которые я скачивал работали на таймерах и причём [sensored]но.

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 LamerOnLine



ICQ: 334781088 

Вопросов: 108
Ответов: 2822
 Профиль | | #1 Добавлено: 17.09.03 10:04

Ты прав, оригинального тут ничего нет, это одна из наиболее широко применяемых API.

Однако, где у тебя привязка к быстродействию системы? Т.е. у тебя задержка одна и для 100 Мгц проца, и для 2 Ггц. Вести себя эта игрушка будет несколько по разному.

А вообще sleep действительно удобна, т.к. не грузит проц при задержке, весьма полезно.

Хотя я бы на твоем месте все же распихал бы задачи по разным Thread'ам, чтобы выполнялись они параллельно. Хотя в VB5-6 это не слишком надежно, извращаться надо.

Ответить

Номер ответа: 2
Автор ответа:
 Morpheus



Вопросов: 224
Ответов: 3777
 Web-сайт: xury.zx6.ru
 Профиль | | #2
Добавлено: 17.09.03 13:49

Хм... По моему нет никакой разницы какой проц, разве что расчёты видутся с разной скоростью, а интервал то вроде сохраняется. Спасибо, что ответил, а то я похвалиться то похвалился, а самое важное забыл написать ( нет ли побочных эфектов?) Только хотел дописать-сморю уже есть ответ.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам