Главная страница
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.017 c
14-60388
Ru
2003-06-02 14:44
2003.06.19
Критика христианства


14-60393
Frist_May
2003-06-03 10:35
2003.06.19
Delphi + Clarion


11-60101
Xoow
2002-09-26 05:45
2003.06.19
Вопрос


3-60056
Kapitan
2003-05-28 12:03
2003.06.19
Cancel и DBGrid


1-60185
Maxim Pshevlotsky
2003-06-05 09:09
2003.06.19
Выгрузка ActiveX Library