![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Mar 2013
Сообщений: 2
|
Привет.
AS начал изучать недавно, хотя опыт в программировании имею около 10 лет и профессионально им занимаюсь. Сейчас тренируюсь на простых задачках, и вот, наконец, наткнулся на проблему, которую не смог решить гуглением (хотя, скорее всего, не смог сформулировать запрос). Делаю элементарный шутер на плоскости, типа стрелять в выскакивающих бандитов. Итак, сначала делаю из мышки прицел: public function startGame() { // ... aim = new sAim(mouseX, mouseY); stage.addChild(aim); stage.addEventListener(MouseEvent.MOUSE_MOVE, moveAim); // ... } private function moveAim(e:MouseEvent) { if (aim) { stage.removeChild(aim); aim = null; } aim = new sAim(mouseX, mouseY); stage.addChild(aim); } private function createBandit() { var bandit = new sBandit(fadetime); addChild(bandit); } sAim и sBandit - оба класса extends MovieClip. Далее получаю проблему: клик по бандиту не отлавливается. Подумав логически, я понял, что он не отлавливается потому, что реально клик происходит не по бандиту, а по прицелу. Проверил - так и есть, по прицелу клик отлавливается. Да, можно отловить координаты мышки, и проверить, есть ли в этих координатах бандит, но это решение громоздкое и, мне кажется, должен быть намного более изящный способ решить эту задачу. Посоветуйте, пожалуйста. |
|
|||||
|
Намного более изящный способ – отключить у прицела реакцию на мышку:
mouseEnabled, mouseChildren. Еще, подозреваю, что функцию moveAim можно упростить до: Хотя, возможно в постоянном пересоздании прицела есть какой-то тайный смысл. |
|
|||||
|
Регистрация: Mar 2013
Сообщений: 2
|
Гениально
Спасибо. Оба совета в кассу. |
|
|||||
|
В более сложных ситуациях можно использовать getObjectsUnderPoint
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:16. |
|
|
« Предыдущая тема | Следующая тема » |
|
|