Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.08;
Скачать: CL | DM;

Вниз

Определение в DelphiX спрайта по которому был сделан клик   Найти похожие ветки 

 
Arkano   (2006-08-16 18:07) [0]

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


 
Bogdan1024 ©   (2006-08-16 18:25) [1]

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


 
tButton ©   (2006-08-16 18:47) [2]

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

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


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

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


 
tButton ©   (2006-08-16 19:02) [4]

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


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

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


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

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



Страницы: 1 вся ветка

Текущий архив: 2007.07.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.029 c
3-1176204004
allucard
2007-04-10 15:20
2007.07.08
Как хранить компоненты в БД?


15-1181312404
DelphiLexx
2007-06-08 18:20
2007.07.08
XML и программист Delphi


15-1181412506
Prefd
2007-06-09 22:08
2007.07.08
Вопрос по Word у


2-1181651975
Kolan
2007-06-12 16:39
2007.07.08
FormResize срабатывает при закрытии приложения, как избежать?


8-1161538763
trubin
2006-10-22 21:39
2007.07.08
Нужен пример из книги "DirectX Графика в проектах Delphi"