Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.021 c
14-60333
Начинающий_
2003-06-02 05:21
2003.06.19
Срочно алгоритм сортировки списка


1-60231
Sarge
2003-06-05 15:33
2003.06.19
Скопировать массив в массив


7-60443
Bug
2003-04-16 10:22
2003.06.19
версия ОС.


14-60355
Странник
2003-05-30 11:05
2003.06.19
Вулфовиц: Уничтожение ОМУ не было основной целью США в Ираке


14-60359
- = LAN = -
2003-06-01 15:34
2003.06.19
Как зайти на нерасшаренный диск в локалке?