Главная страница
    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.012 c
1-96802
REA
2003-01-17 16:08
2003.01.30
Печать картинки


1-96701
falcon_k
2003-01-22 02:09
2003.01.30
Как показать юзеру что прога работает и не повисла


3-96634
Джоник
2003-01-13 15:07
2003.01.30
Запрос-добавление к двум базам IB


14-96946
Driverrr
2003-01-12 11:56
2003.01.30
?


1-96657
nikulin
2003-01-21 15:29
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский