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

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



Память: 0.46 MB
Время: 0.012 c
1-60192
Шаповалов К И
2003-06-05 10:59
2003.06.19
TChart. Тривиально - по произвольному значению X узнать Y


14-60319
DVM
2003-06-03 18:39
2003.06.19
Периодическое обращение к диску A: в Win2000Server


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


1-60245
vlv
2003-06-05 20:37
2003.06.19
Как преобразовать строку, содержащую 16-тиричное выражение?


1-60136
sapsi
2003-06-06 09:13
2003.06.19
Конвертация Excel файла в формат факс-сообщения




   Наверх