Форум: "Игры";
Текущий архив: 2005.02.20;
Скачать: [xml.tar.bz2];
ВнизКак избежать наезда спрайтов друг на друга... Найти похожие ветки
← →
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.
.DoNotNaesd := true; //Запретить наезд спрайтов
TDXImageSprite
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c