Главная страница
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.025 c
1-1119452105
timotei
2005-06-22 18:55
2005.07.11
Массив объектов класса


8-1110903486
tazik
2005-03-15 19:18
2005.07.11
Как заглушить солиста в мр3


3-1117277252
Киря
2005-05-28 14:47
2005.07.11
Как сделать поиск в базе данных как в ACCESS е?


3-1117526486
_Max
2005-05-31 12:01
2005.07.11
Вылетает AV


8-1111160885
zhongguoren
2005-03-18 18:48
2005.07.11
tstringlist.create