Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.


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

Наверх




Память: 0.45 MB
Время: 0.04 c
3-1106230937
Shizuku
2005-01-20 17:22
2005.02.20
Best Report


8-1098004175
focor
2004-10-17 13:09
2005.02.20
MicroPhonoClack


1-1107778456
Ega23
2005-02-07 15:14
2005.02.20
Поясните ситуацию с StrPCopy


3-1106577778
DimonNew
2005-01-24 17:42
2005.02.20
Сохранение файлов в BLOB поле


9-1100536487
Kobik
2004-11-15 19:34
2005.02.20
Диздок





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