Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите разобраться с DelphiX [D6, Win95/98]


Карлсон ©   (2002-07-06 02:10:00) 

Я сейчас пишу небольшой арканоид на DelphiX.
Все уже написал, и столкновения, вообщем осталась одна косметика.
Но вот я не могу понять одного.
Моя программа работает на 84-85 FPS.
При этом шарик при движении иногда дергается.
Т.е. насколько я понял, система не прорисовывает движение спрайта и получается дерганье.
Таймер поставлен на интервал "0".
Подскажите пожалуйста, как от этого избавиться!
Или это связано с тем, что я программирую в Delphi 6 и там какая-то нестыковка в адаптированном DelphiX?


MBo   (2002-08-08 09:15:00) [1]

maxim2
шарик движется по прямой, при столкновении с горизонтальной стенкой меняется знак вертикальной составляющей скорости и наоборот. Это все.


maxim2   (2002-08-08 08:48:00) [2]

> Карлсон а не подскажеш алгоритм по траектории движения шарика


Ich Hasse   (2002-07-08 08:47:00) [3]

Вообще это зависит от Windows (я так думаю). У меня на XP такойже ГЛЮК, а на ME нормально!


MrBeer   (2002-07-08 03:35:00) [4]

1) vopervih nado risovatj backbuffer (ne znaju kak tam v delphix)
2) DirectDraw pri perekidovanii iz backbuffer-a na vidimii surface sam vibratj moment s prohodom lucha.
3) Dvizhenia sharika nado soglasovatj s timerom inache tozhe mozhesh poluchitj dyorgannie.

Best regards,
MrBeer.


cyborg   (2002-07-06 16:08:00) [5]

Ограничить таймером 1000 div на кол-во кадров в секунду=требуемая задержка в миллисекундах. От дёрганья думаю не избавиться, посмотри, может у тебя программа что нить делает медленное, может с диском что нить делает или ещё чего.


Карлсон   (2002-07-06 13:42:00) [6]

Синхронизация это вещь клевая.
Я когда отключил, у меня доходило до 520-540 FPS %)
Но я так и не понял, как избавиться от дерганья?
Помнится в DelphiX можно было искуственно ограничивать FPS.
Как это сделать?


cyborg   (2002-07-06 11:54:00) [7]

Куда тебе 85 кадров в арканоиде? Максимум 50 и то много.
Заикание это наверное директХ так работает, твоя прога всё просчитает и отдаёт ДиректХ графику рисовать, если в этот момент процессор занят, то картинка не рисуется, а к этому времени твоя рограмма уже подготовила новые данные если есть свободные ресурсы процессора, то картинка отобразится. Иногда бывет такая штука, когда например заработала активная работа с диском при этом картинка останавливается и после этого отображается в ускоренном виде.
Ну эт всё у меня мысли такие, варёные :)
Таймер в 0 не нужно ставить так у тебя идёт сдерживание только из за синхронизации вывода графики, если в директХ эту функцию выключить у тебя будет летать настотлько, насколько позволит твоя система и играть будет невозможно на быстрых компьютерах. Либо у кого стоит частота 120 , у кого 60 соответственно скорости игры могут различаться в 2 раза.
Думаю для простых 2Д игр достаточно 25-50 кадров в секунду.


Наверх

Титульная страница Поиск, карта сайта Написать письмо