Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.30;
Скачать: CL | DM;

Вниз

Помогите разобраться с DelphiX   Найти похожие ветки 

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

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


 
cyborg ©   (2002-07-06 11:54) [1]

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


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

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


 
cyborg ©   (2002-07-06 16:08) [3]

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


 
MrBeer ©   (2002-07-08 03:35) [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.


 
Ich Hasse ©   (2002-07-08 08:47) [5]

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


 
maxim2 ©   (2002-08-08 08:48) [6]

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


 
MBo ©   (2002-08-08 09:15) [7]

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



Страницы: 1 вся ветка

Текущий архив: 2003.01.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
9-96506
Данилин Руслан
2002-08-04 19:53
2003.01.30
Прозрачность


7-97066
Sharik_212
2002-11-15 16:11
2003.01.30
Сколько времени не нажимали на клаву и не шевелили мышей?


14-96995
Фтпуд
2003-01-13 14:07
2003.01.30
Господа, не подскажите ссылку на компонент


1-96699
Юра
2003-01-20 13:00
2003.01.30
Адрес обработчика


1-96672
Дмитрий Баранов
2003-01-21 13:54
2003.01.30
Генерация уникального идентификатора