Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];

Вниз

из точку в точку по прямой.   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
3-60042
YuraKiller
2003-05-25 15:38
2003.06.19
Как подбить количество возращаемых записей?


14-60348
Зозуля Юрий
2003-05-30 23:44
2003.06.19
Где моя анкета


3-60089
Alex_C
2003-05-27 10:35
2003.06.19
Разная высота строк в dbGrid


3-60036
plans
2003-05-27 10:17
2003.06.19
Оптимизация запроса...


7-60438
Yanis
2003-04-15 22:17
2003.06.19
Format a:





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский