Overriding onTouchEvent with Flixel (Android port)
So I fol开发者_C百科lowed Mathew Casperson's Making Games on Android Tutorial and got a small game running a few days ago, now I am trying to switch the controls to touchscreen instead of the D-pad.
I am running into some problems and was wondering if anyone here could help me. Flixel doesn't have any built in touchscreen functions so I am overriding onTouchEvent(MotionEvent event)
in my Activity (FlixelDemo.java
in the tutorial) and hopefully getting the coordinates of the touch.
I then have a function in my Player.java
that given the touch coordinates could tell me whether my player has been touched.
The problem I am having is trying to figure out how to get to/call that function (isCollision
) from in the activity.
It seems that I can only override the onTouchEvent in FlixelDemo.java
and that I can only use the isCollision
function in GameState.java
where I add the player.
How do I get the info from the overridden touch event to any of my other classes? Can anyone tell me what I am doing wrong or help me figure out a different way of implementing touch events?
Looking at the code, FlixelDemo
is really just a container for org.flixel.FlxGameView
(via the res/layout/main.xml
file).
The onTouchEvent
method can be applied to any View
, so you can apply it to just the flixel viewport.
And in fact, that's probably what you want to do here: Add your handler directly to FlxGameView.java
, and then let it call a method on the internal GameThread
class.
It's already handling the other events this way. See FlxGameView.onKeyDown
(and the associated FlxGameView.GameThread.doKeyDown
) for a good example.
精彩评论