Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.20;
Скачать: CL | DM;

Вниз

Как избежать наезда спрайтов друг на друга...   Найти похожие ветки 

 
ballack   (2004-11-15 06:57) [0]

Подскажите простой способ, как можно избежать наезда спрайтов друг на друга при их столкновении, т.е. чтобы их прямоугольники никогда не пересекались. Спрайты двигаются на плоскости.


 
cyborg ©   (2004-11-15 10:20) [1]

Если есть коллизия (столкновение) то возвращай координаты назад.


 
ballack   (2004-11-15 11:09) [2]

То есть при любом перемещении хранить предыдущие координаты где-то в полях
DoMove:
..
FLastX := X;
FLastY := Y;
MoveProc;
.., а в DoCollision откатываться к ним:
..
If Sprite.ClassName Is Self.ClassName then
 X := FLastX;
 Y := FLastY;
...
Правильно я понял?


 
cyborg ©   (2004-11-15 11:11) [3]

Не обязательно, просто в функции перемещения и проверки столкновения запоминай координаты, можно во временных переменных, если что не так, то возвращай обратно.


 
Megabyte-CeerCop ©   (2004-11-16 12:47) [4]

Есть способ проще. У спрайта TDXImageSprite есть свойство кажется DoNotNaesd.


TDXImageSprite
.DoNotNaesd := true;  //Запретить наезд спрайтов
TDXImageSprite.DoNotNaesd := false;  //Разрешить наезд спрайтов

Такой способ подойдет?


 
ballack   (2004-11-17 08:42) [5]

Спасибо, cyborg, направили на верный путь...

Megabyte-CeerCop, не очень смешно.


 
Megabyte-CeerCop ©   (2004-11-17 12:16) [6]

Я же помочь хочу.
Чего в этом смешного?



Страницы: 1 вся ветка

Текущий архив: 2005.02.20;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.084 c
1-1107432911
Павел
2005-02-03 15:15
2005.02.20
Компоненты для работы с регулярными выражениями


9-1099337514
Colt1978
2004-11-01 22:31
2005.02.20
Задание пути объекту.... (GLScene)


4-1104671073
lexusU
2005-01-02 16:04
2005.02.20
Как зарегистрировать и запустить/остановить службу?


14-1107178240
ArchValentin
2005-01-31 16:30
2005.02.20
Кто чё-нить знает про зверя VBScript просю...


1-1107870228
vvllaadd
2005-02-08 16:43
2005.02.20
В Rave Reports 5.0 вывожу несколько графиков :