Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Вниз

DelphiX, движение пули   Найти похожие ветки 

 
ballack   (2004-11-02 03:39) [0]

Столкнулся с такой проблемой. Есть карта, представленная двумерным массивом, состоящая из стен и т.п. Есть летящая пуля, перемещение которой в DoMove рассчитывается примерно таким способом: x := x + FSpeed * 0.1 * MoveCount. На каждом шаге проверяется, есть ли столкновение со стеной. Когда в игре падает FPS, значение MoveCount увеличивается и за один шаг пуля пролетает большее расстояние. Т.е. иногда получается, что пуля может пролететь через стену, не задев. Как этого избежать?


 
Slmer   (2004-11-21 21:53) [1]

Пуля летит по прямой, да? :)
Вот и найди первое пересечение этой самой прямой со стеной.


 
Malefic ©   (2004-11-22 11:01) [2]

Ты на DelphiX пишешь судя по-всему. Убери переменную MoveCount, так как она только мешает. Если FPS падает, то это всё-равно заметно и увеличением скорости игры тут не поможешь. Вместо нее поставь константу. А вообще переходи на PowerDraw или Asphyre. Я тоже на DelphiX писал сначала, а потом за 3 недели перешел на PD и до сих пор считаю его лучше. Кстати он не сложнее, чем DelphiX.


 
ballack   (2004-11-22 11:28) [3]

Slmer
Пуля у меня летит не мгновенно, а с некоторой скоростью. В какой момент мне проверять первое пересечение со стеной? В момент выстрела? Так пока долетит, стены уже может и не быть на пути.
Malefic ©  
Спасибо за совет, чуть позже возмусь за PD, у меня сейчас уже достаточно много написано под DelphiX, и переделывать неохота.


 
TButton ©   (2004-11-24 21:51) [4]

проверяй пересечение со стеной на отрезке который пуля проходит за один кадр. тогда даже если она летит не по прямой коллизию проверить можно. а на мувкаунт забей однозначно, глупость это беспантовая.



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

Форум: "Игры";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.039 c
3-1106551428
Carter
2005-01-24 10:23
2005.02.20
BookMark и Filter конфликтуют. Помогите пожалуйста!


3-1106545295
Layner
2005-01-24 08:41
2005.02.20
Мастера, посоветуйте, как расшифровать выборку на клиенте


9-1100609331
Colt1978
2004-11-16 15:48
2005.02.20
Прогресс бар...


14-1106881694
Думкин
2005-01-28 06:08
2005.02.20
С Днем Рождения! 28 января


1-1107432911
Павел
2005-02-03 15:15
2005.02.20
Компоненты для работы с регулярными выражениями





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский