Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
1-96840
freeek10
2003-01-20 20:56
2003.01.30
ListBox


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


1-96659
softmaster
2003-01-21 14:49
2003.01.30
Путь запуска приложения


3-96571
BlackTiger
2003-01-08 20:48
2003.01.30
Как бы сделать auto-size колонок в DBGrid(Eh)?


1-96711
DTK
2003-01-20 15:17
2003.01.30
Работа с рисунками





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский