Главная страница
    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.45 MB
Время: 0.007 c
3-60088
LeReve
2003-05-27 23:22
2003.06.19
как програмно изменить запись в БД???


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


6-60309
anpv
2003-04-12 18:46
2003.06.19
Отправка JPEG на PHP


1-60209
Michael2003
2003-06-05 13:29
2003.06.19
Как задать цвет в отдельной ячейке StringGrid


8-60279
Дмитрий К.К.
2003-02-19 07:17
2003.06.19
Библиотека(и) для графики





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский