我正在开发一款关于android的压力敏感游戏。 (或者换句话说游戏结束) 但我知道我想开始使用游戏引擎,我决定使用Libgdx。 但是,GestureDetector.GestureListener和InputProcessor接口不提供android内部MotionEvent的压力参数。 我试图手动将游戏设置为View.OnTouchListener,但这会干扰线程模型......
有关解决方案的任何建议吗?
答案 0 :(得分:2)
到目前为止我只知道一个选项,即来自getPressure()
课程的MotionEvent
。该函数将在float中为您提供0到1之间的值。docs
注意:没有压力传感器的设备通过触摸点的大小模拟压力。
压力越大意味着手指覆盖的屏幕区域越多。
setOnTouchListener
可以为您提供MotionEvent
对象,您可以从中获取压力值。
someView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
float pressure = event.getPressure();
}
});
答案 1 :(得分:2)
以下是我向游戏对象添加压力的代码的一部分
final MyGdxGame game = new MyGdxGame();
View view = initializeForView(game, config);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
getInput().onTouch(v, event);
game.setPressure(event.getPressure());
Log.v("log", "hooked " + event.getPressure());
return true;
}
});
诀窍是我必须致电initializeForView
才能覆盖onTouchListener
并将MotionEvent
转发给Libgdx
的输入处理程序。