Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.051 c
14-1118238463
peace
2005-06-08 17:47
2005.07.11
Злюки Модеры


4-1115928013
NikNet
2005-05-13 00:00
2005.07.11
Как временно запретить работать программе>?


10-1095160880
Jaxtor
2004-09-14 15:21
2005.07.11
Отображение формы приложения на DCOM сервере


5-1089345579
Maxim
2004-07-09 07:59
2005.07.11
1.Не визуальная компонента 1. property


9-1104148626
Zak
2004-12-27 14:57
2005.07.11
А не устраивать ли нам небольшие конкурсы по кодингу? (ч.3)




   Наверх