Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чистые коллизии в GLScene [Delphi, +GLScene]


!Trinix ©   (2005-10-23 19:14:00) 

Помогите, пожалуйста. Решил поучаствовать в конкурсе "скроллер". Так как размер дистрибутива аж 1,5 Мб, то работал в GLScene. На данный момент отработал уже весь код, но есть одна тупая проблема. Для соприкосновения с бонусами использую следующий код:
[code]
 if  ((Object1.Name=DCPlayer.Name)and(Object2.Name=PN.BrillPower.Name)) then begin
   pow := true;
   PN.BrillPower.Visible := False;
   PN.kolobok.Scale.Scale(1.5);
 end;
 if ((Object1.Name=DCPlayer.Name)and(Object2.Name=PN.BrillJump.Name)) then begin
   jump := true;
   PN.BrillJump.Visible := False;
   jumpStreght := jumpStreght*2;
 end;
[/code]
Здесь две ошибки:
1) Брилы становятся невидимыми, но по прежнему идет события столкновения с ними (это я сам смогу решить).
2) Когда я сталкиваюсь с каким-нибудь брилом, то идет обработка событий, для всех брилов. Т. е. взял бонус прыжка и начал не только прыгать, но и еще в полтора раза вырос, что с этим сделать?


Fosgen   (2005-10-23 20:52:00) [1]

1. Вообще-то надо не координату менять, а ставить CollisionIndex или CollisionGroup (сейчас не помню точно) меньше 0. Тогда объект исключается из обработки коллизий. Невидимость не предотвращает столкновения, несмотря на таковое описание в доке.
2. А у тебя случаем эти самые "брилы" не прокси объектом созданы? Просто прокси-объект рассматривается как единый объект. И лично я имел сложности при обработке столкновений с прокси ввиду того что попадание объекта в суммарный объем прокси-объектов вызывает столкновения.
Ко всему прочему - не ясно а как у тебя отличаются по имени эти самые "брилы"?


!Trinix   (2005-10-23 19:21:00) [2]

Ок координату, я после этого сообщения сменил, а вот с тем, чтобы ничто ничего не задевало я хорошо позаботился.


Antonn   (2005-10-23 19:20:00) [3]


> Решил поучаствовать в конкурсе "скроллер".

молодец, я тоже поучавствую:)
в ГЛСцене вообше не шарю, но попробую:
PN.BrillPower.Name и PN.BrillJump.Name разные имена?
случайно в одном и том же месте не лежат ли 2 бонуса (один в другом)?
возможно где то еще обработка идет, может begin..end не в том месте проставлен?


> Брилы становятся невидимыми, но по прежнему идет
> события столкновения с ними (это я сам смогу решить).

можно координату сменить, пусть за картой сидит:)


Наверх

Титульная страница Поиск, карта сайта Написать письмо