Переопределение onTouchEvent с Flixel (порт Android) - PullRequest
2 голосов
/ 11 октября 2011

Итак, я следовал за Мэтью Касперсоном Создание игр для Android Учебное пособие и несколько дней назад запустил небольшую игру, теперь я пытаюсь переключить управление на сенсорный экран вместо D-pad.

Я столкнулся с некоторыми проблемами, и мне было интересно, может ли кто-нибудь здесь помочь мне.Flixel не имеет встроенных функций сенсорного экрана, поэтому я переопределяю onTouchEvent(MotionEvent event) в своей деятельности (FlixelDemo.java в учебнике) и, надеюсь, получаю координаты касания.

У меня тогда есть функция в моемPlayer.java, что, учитывая координаты касания, может сказать мне, был ли затронут мой игрок.

Проблема, с которой я сталкиваюсь, заключается в попытке выяснить, как получить / вызвать эту функцию (isCollision) вактивность.

Кажется, что я могу переопределить только onTouchEvent в FlixelDemo.java и что я могу использовать только функцию isCollision в GameState.java, где я добавляю игрока.

Как сделатьЯ получаю информацию от переопределенного события касания к любому из моих других классов?Может кто-нибудь сказать мне, что я делаю неправильно, или помочь мне найти другой способ реализации сенсорных событий?

1 Ответ

0 голосов
/ 26 октября 2011

Глядя на код, FlixelDemo - это просто контейнер для org.flixel.FlxGameView (через файл res/layout/main.xml).

Метод onTouchEvent может быть применен к любому View, поэтому вы можете применить его только к окну просмотра flixel.

И на самом деле это, вероятно, то, что вы хотите сделать здесь: добавьте ваш обработчик непосредственно в FlxGameView.java, а затем позвольте ему вызывать метод во внутреннем GameThread классе.

Он уже обрабатывает другие события таким образом. См. FlxGameView.onKeyDown (и соответствующий FlxGameView.GameThread.doKeyDown) для хорошего примера.

...