0

我目前正在帮助某人将 XNA 移植到 Android 端口,用于游戏 FlyTrap。您可以在此处查看游戏视频: http ://www.youtube.com/watch?v=fhwCErELHoA

港口进展顺利,除了一件事。雇用我的人正在建造一台基于 cubieboard2 的街机,他的计划是连接两个街机操纵杆。显然,他的街机操纵杆模仿了 Android 上的鼠标。

计划是每帧捕获鼠标的位置,计算这一帧与前一帧之间的增量值,并使用该增量来指导玩家移动。问题是 Mouse.GetState 似乎不起作用。所以我想我将不得不在 Mono.Android 级别而不是 MonoGame 级别上工作。

长话短说,有谁知道如何在Android中捕捉鼠标的位置?

安格斯

4

2 回答 2

2

在您的活动中实现并使用该方法OnTouchListener为您的视图设置监听器。setOnTouchListener()

现在您可以在 Activity 中覆盖该onTouch()方法。

@Override
public boolean onTouch(View view, MotionEvent event) {

int x = (int) event.getX();       
int y = (int) event.getY();

return false;
}
于 2013-09-23T10:45:35.183 回答
-1

我在这篇文章中问了两个问题。我将从更简单的开始。“所以我的下一个问题是,如何让 AndroidGameWindow 实现 View.OnGenericMotionListener?”

我正在做的项目是针对 Android API8,Views.OnGenericMotionListener 来自 Android API12。在 Xamarin Studio 中,我右键单击该项目,选择选项。

  • 在 Build --> General 我将目标框架设置为 Android API 12
  • 在 Build --> Android Application 下,我将最低 Android 版本和目标 Android 版本设置为 API 12。

在文件 Android.AndroidGameWindow 的 MonoGame 项目中,我添加了这两个方法

public bool OnGenericMotion(View view, MotionEvent e)
{
    return OnGenericMotionEvent(e);
}

public override bool OnGenericMotionEvent(MotionEvent e)
{
    MousePosition.X = e.GetX();
    MousePosition.Y = e.GetY();

    return true;
}

我还修改了 AndroidGameWindow 类,使其实现接口 Android.Views.View.IOnGenericMotionListener

于 2013-10-02T06:49:47.243 回答