Форум: "Игры";
Текущий архив: 2003.01.30;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c