用Flixel覆盖onTouchEvent(Android端口)

时间:2011-10-11 00:46:35

标签: android touchscreen ontouchevent flixel

所以我跟着Mathew Casperson's Making Games on Android Tutorial并在几天前运行了一个小游戏,现在我正在尝试将控件切换到触摸屏而不是D-pad。

我遇到了一些问题,并想知道这里是否有人可以帮助我。 Flixel没有任何内置的触摸屏功能,所以我在我的活动中覆盖了onTouchEvent(MotionEvent event)(教程中的FlixelDemo.java)并希望获得触摸的坐标。

然后我在我的Player.java中有一个函数,给定触摸坐标可以告诉我我的播放器是否被触摸过。

我遇到的问题是试图弄清楚如何从活动中获取/调用该函数(isCollision)。

似乎我只能覆盖FlixelDemo.java中的onTouchEvent,并且我只能使用添加播放器的isCollision中的GameState.java函数。

如何从重写的触摸事件中获取任何其他类的信息?任何人都可以告诉我我做错了什么或帮助我找出实现触摸事件的不同方式吗?

1 个答案:

答案 0 :(得分:0)

查看代码,FlixelDemo实际上只是org.flixel.FlxGameView的容器(通过res/layout/main.xml文件)。

onTouchEvent方法可应用于任何View,因此您只能将其应用于flixel视口。

事实上,这可能就是你想要做的:直接将你的处理程序添加到FlxGameView.java,然后让它调用内部GameThread类的方法。

它已经以这种方式处理其他事件。请参阅FlxGameView.onKeyDown(和关联的FlxGameView.GameThread.doKeyDown)以获取一个好例子。