我正在帮助某人使用XNA到Android端口进行FlyTrap游戏。你可以在这里查看游戏视频: http://www.youtube.com/watch?v=fhwCErELHoA
除了一件事,港口进展顺利。聘请我的人正在建造一个街机,基于一个cubieboard2,他的计划是附加两个街机操纵杆。显然他在Android上模仿鼠标的街机操纵杆。
计划是每帧捕捉鼠标的位置,计算此帧与前一帧之间的增量值,并使用该增量来指导玩家移动。问题是Mouse.GetState似乎不起作用。所以我想我将不得不在Mono.Android级别而不是MonoGame级别上工作。
长话短说,有谁知道如何捕捉Android中鼠标的位置?
安格斯
答案 0 :(得分: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;
}
答案 1 :(得分:-1)
我在这篇文章中提到了两个问题。我将从更简单的开始。 “所以我的下一个问题是,如何让AndroidGameWindow实现View.OnGenericMotionListener?”
我正在开发的项目是针对Android API8,Views.OnGenericMotionListener是在Android API12中出现的。在Xamarin Studio中,我右键单击了该项目,选择了Options。
在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接口