Текущий архив: 2003.06.19;
Скачать: CL | DM;
Вниз
из точку в точку по прямой. Найти похожие ветки
← →
Tankist (2002-12-12 11:48) [0]У меня такая проблема: я - новичок в GameDev...Начал писать свой первый проект...все хорошо приклеил, персонаж двигается...только двигается он у ж очень не естевственно: сначала идет по диагонали (x+1;y+1),когда достигает x или y идет соответственно по прямой по y или x подскажите формулу для подсчета движения из пункта а в пункт b напрямую?
← →
vitas2 (2002-12-12 12:25) [1]если есть 2 точки то можно написать уравнение прямой потом ставиш координаты х и получаеш у ;-)
← →
OlegL (2002-12-21 12:19) [2]vitas2 конечно прав но, тут есть нюнсы с углом. То есть если угол прямой меньше 45 относительно x то даём х и получаем у, а если на оборот, больше 45, выводим формулу так что-бы можно было дать у и получить х.
← →
TButton (2003-01-10 15:11) [3]dx:=(x2-x1)/steps;
dy:=(y2-y1)/steps;
далее x1 и y1 приращаешь по dx и dy соответственно
steps - количество шагов за который проходится путь; если нет числа шагов, но есть скорость, то считаешь число шагов по формуле
s=SQRT(SQR(x2-x1)+SQR(y2-y1)); //теорема пифагора
steps=s/v; //v - скорость
← →
Mirovodin (2003-01-10 15:19) [4]Еще немаловажный фактор - нужно хранить Double значения спрайта для более реалистичного медленного движения:
TSprite = Class ...
fXFlt, fYFlt: Double;
fX, fY : integer;
...
fXFlt:=fXFlt+dX;
fYFlt:=fYFlt+dY;
fX:=Trunc(fXFlt);
fY:=Trunc(fYFlt);
← →
Omar 2003 (2003-01-11 12:49) [5]Кык правило в играх вся территория делится на квадраты (так удобней делать просчет маршрута и предусматривать ненаезжание юнитов друг на друга, а так же это удобно для создания карт), а по квадратам он будет идти дергаясь, поэтому следует на протяжении всей хотьбы зафиксировать его спрайт.
Если нужен просчет маршрута, то можешь сходить на www.delphigfx.narod.ru, там вобще много полезностей валяется, которые и для новичков подойдут.
← →
TButton (2003-01-11 19:57) [6]2Omar 2003
Он не будет идти по квадратам дергаясь если помимо координат квадрата запоминать смещение относительно квадрата. Как только смещение превысит размер квадрата оно обнуляется и юнит передается другому квадрату.
Страницы: 1 вся ветка
Текущий архив: 2003.06.19;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c