![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DelphiX, снова detectionCollision.... [Delphi, Windows]
Falcon(TFsoft) © (2004-06-20 12:43:00)Здравствуйте уважаемые Мастера!
Помогите с вопросом, который я немогу решить..., итак:
Пишу на DelphiX, мне надо определять столкновения, главного спрайта (TImageSprite), с другими, такогоже типа, а потом над ними делать операции по перемещению, или уничтожению.
Всё это я пытаюсь реализовать при выполнении процедуры DoCollision, но так как второстепенные спрайты анимированные (AnimPos, AnimSpeed...), то при выполнении этой процедуры (DoCollision - в классе главного спрайта) она оределяет лиш стокновения, но не определяет класс с каким я стыкаюсь.
Вот к примеру :
Есть перемещающийся спрайт игрока, есть наимированная пушка, которая поворачивается в ту сторону, где стоит игрок (просто меняю AnimPos и получается пушка смотрит в другом направлени).
Как толко подхожу к ней со стороны, где AnimPos<>0 то событие не происходит, а если подходить со стороны, где AnimPos=0 то всё ок!
Помогите мне пожайлуста разобратся, и выйти из этой проблемной ситуации...
С ув. Falcon
Falcon(TFSoft) (2004-06-21 13:09:00) [1]Да, так оно и есть...
Дело было в PixelCheck надо его было выключить... :(
Но как быть если при выключеном PixelCheck, столкновения просчитываются не по содеожимому спрайта(включая прозрачные участки), а по его размеру - квадрату NxM?
}{enon (2004-06-20 22:08:00) [2]
> А вообще говоря теоретически, при анимации объект типа TimageSprite
> всё же остаётся самим собой?
А куда ж он денется? Винда при всем желании программиста не даст тому изменить класс контрола во время выполнения программы.
Falcon(TFSoft) (2004-06-20 21:03:00) [3]А вообще говоря теоретически, при анимации объект типа TimageSprite всё же остаётся самим собой?
Falcon(TFSoft) (2004-06-20 21:02:00) [4]Спасибо.
}{enon (2004-06-20 19:39:00) [5]Странно, хотя у меня вроде такое когда-то было. Попробуй поиграться с PixelCheck (true / false У ОБОИХ ОБЪЕКТОВ), может поможет.