2011-10-11 39 views
2

因此,我跟着Mathew Casperson's Making Games on Android Tutorial,並得到了幾天前運行的小遊戲,現在我試圖將控件切換到觸摸屏而不是D-pad。使用Flixel覆蓋onTouchEvent(Android端口)

我遇到了一些問題,並想知道如果有人在這裏可以幫助我。 Flixel沒有任何內置的觸摸屏功能,所以我在我的活動(本教程中的FlixelDemo.java)中重寫onTouchEvent(MotionEvent event),並希望獲得觸摸的座標。

然後,我在我的Player.java中有一個功能,因爲觸摸座標可以告訴我我的播放器是否已被觸摸。

我遇到的問題是試圖找出如何從該活動中獲取/調用該函數(isCollision)。

看來我只能覆蓋FlixelDemo.java中的onTouchEvent,並且我只能使用GameState.java中的isCollision函數添加播放器。

如何從覆蓋的觸摸事件中獲取我的任何其他類的信息?任何人都可以告訴我我做錯了什麼,或者幫助我找出實現觸摸事件的不同方式?

回答

0

看代碼,FlixelDemo實際上只是一個容器org.flixel.FlxGameView(通過res/layout/main.xml文件)。

onTouchEvent方法可以應用於任何View,因此您可以將其應用於flixel視口。

而事實上,這可能是你想要在這裏做的:直接添加你的處理程序到FlxGameView.java,然後讓它調用內部GameThread類的方法。

它已經以這種方式處理其他事件。參見FlxGameView.onKeyDown(和相關的FlxGameView.GameThread.doKeyDown)就是一個很好的例子。