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

Вниз

алгоритм для 2д-аркады   Найти похожие ветки 

 
Green_Templar ©   (2005-03-27 23:29) [0]

Есть чувак ("прямоугольник", вечно перпендикулярный сторонам монитора), и есть поверхность, по которой он бегает. Какой самый оптимальный алгоритм для проверки стоит прямоугольник на поверхности или нет? Как лучше всего задавать поверхность? Естественно, что поверхность не обязательно паралельна Ох.
Я делаю так:
x:array of array of integer. Например x[a,b] - а-это координата персонажа по х; если b=0, то x[a,b]=количеству точек на прямой x=a. соответственно, for c:=1 to x[a,0] даёт нам множество точек этой самой прямой. x[a,b], b<>0 - координата у точки.
Потом всё время проверяю наличие точек в прямоугольнике , где Left и Right - правая и левая точка чувака, Top=Bottom чувака, Bottom=Bottom+ускорение силы тяжести(5 пикселей, например), с которым чувак падает вниз. Если чувак прыгает, естессно, алгоритм на проверку крыши другой (не трудно догадаться, какой).
И всё бы хорошо, если бы такой алгоритм давал больше 20 фпс (на хороших машинах показывает фпс минимум 30), и это при том, что у меня пока что только 1 перс бегает, а если врагов добавить...
Просьба выразить своё "фе" по поводу сего творения мысли, чем больше, тем лучше :)
Ещё вопрос: а как сделать так, что если персонаж запрыгнул на плывучую колоду, то он перемещается вместе с ней по х и по у, а не вываливается при движении?


 
П7   (2005-03-27 23:44) [1]

На чём пишешь? Обычно примерно так и делают... Если я правильно тебя понял.


 
@!!ex   (2005-03-28 00:01) [2]

Я так думаю, что основную часть ресурсов у тебя жрет не расчет, а отрисовка.....


 
Green_Templar ©   (2005-03-28 01:01) [3]

Пишу на Дэлфи7 + ДэлфиХ, потом перейду с ДэлфиХ на дайректДроу-похожие. Отрисовка у меня совсем ничего не жрёт - разрешение экрана никакого значения как ни странно не играет, тем более что там пока кроме персонажа и точек карты ничего не рисуется. А как насчёт колоды?



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

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

Наверх




Память: 0.47 MB
Время: 0.054 c
1-1117912910
Destroyer
2005-06-04 23:21
2005.07.11
Как организовать несколько визуальных режимов программы?


4-1116330535
Shuma
2005-05-17 15:48
2005.07.11
Виртуальный диск


14-1118901007
TUser
2005-06-16 09:50
2005.07.11
Что выбрать?


14-1118649321
Stanislav
2005-06-13 11:55
2005.07.11
Установка компонент в Delphi2005


1-1118261613
SniZ
2005-06-09 00:13
2005.07.11
Сжатие строки