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

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

Определение в DelphiX спрайта по которому был сделан клик [Delphi, Windows]


Arkano ©   (2006-08-16 18:07:00) 

Учусь работать в DelphiX.
Есть множество одинаковых спрайтов - плоскость на которой сеткой расположены шестигранники-спрайты.
Нужно определить номер спрайта по которому был произведен клик.
Как это сделать, подскажите.


Нуб   (2006-08-16 22:39:00) [1]

Пиксель-чек непашет когда спрайты анимируются (вернее ОЧЕНЬ плохо работает). Просто сделай спрайт 1*1 пиксель, который будет прикреплен к координатам указателя мышки. А потом проверяй в Colission, с каким спрайтом он сталкивается при условии что на DXDraw зажата кнопка мышки.


Нуб   (2006-08-16 22:39:00) [2]

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


tButton   (2006-08-16 19:02:00) [3]

была такая проблема, отпала вместе с дельфиХ
ровно тоже самое требовалось, до реализации не дошло
но замысел был примерно такой же. поместить в позиции hotspot курсора
однопиксельный спрайт и проверять коллизию.


Arkano   (2006-08-16 18:55:00) [4]

Не хотелось бы с алгеброй мутить... :(
Про свойство PixelCheck я в курсе, но от него не жарко не холодно.
Это же всего лишь свойство. Оно скорее служит для проверки столкновений попиксельно или упрощенно. А требуется же узнать "столкновение" с курсором. Хотя как вариант под курсор засунуть еще один спрайт и двигать его вместе с курсором и тогда уже проверять столкновения. Но и это не совсем то, ведь номер спрайта из этого кажется нельзя узнать...


tButton   (2006-08-16 18:47:00) [5]

если TDXSprite используется то есть
там у него ещё и свойство PixelCheck есть
от которого зависит будет ли проверяться геометрия или каждый пиксель (с учётом транспарентности)
единственная беда - без пиксель чека
глючит при поворотах
не умеет он проверять повёрнутый спрайт, поэтому проверяет. как будто он не повёрнут

но я в эту байду углубляться не стал
поэтому подробнее рассказать не могу
смотрите примеры


Bogdan1024   (2006-08-16 18:25:00) [6]

У спрайтов нету метода, который говорил бы по какому спрайту ты кликнул потому что ты кликаешь не по спрайтам, а по поверхности. Используй алгебру.


Наверх

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