thi*_*olr 5 android gamepad android-tv
我需要有两种不同的行为,一种用于D-pad,另一种用于模拟游戏杆(在同一游戏板上)。
问题是在onGenericMotionEvent回调上,两者在上都有相同的信息,因此MotionEvent我无法区分它们。
// d-pad
MotionEvent { action=ACTION_MOVE, id[0]=0, x[0]=-1.5259255E-5, y[0]=-1.5259255E-5, toolType[0]=TOOL_TYPE_UNKNOWN, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=151637936, downTime=0, deviceId=5, source=0x1000010 }
// analog joystick
MotionEvent { action=ACTION_MOVE, id[0]=0, x[0]=0.64507514, y[0]=0.710811, toolType[0]=TOOL_TYPE_UNKNOWN, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=151650802, downTime=0, deviceId=5, source=0x1000010 }
Run Code Online (Sandbox Code Playgroud)
是否可以确定正在使用哪种输入?怎么样?
小智 0
查看您提供的信息,它们看起来来自同一来源,即操纵杆(0x1000010)。您可以在输入设备对象上检查这些信息。
以下信息来自处理控制器操作:
要验证连接的输入设备是否为游戏控制器,请调用
getSources()以获取该设备支持的输入源类型的组合位字段。源类型
SOURCE_GAMEPAD表示输入设备具有游戏手柄按钮(例如BUTTON_A)。请注意,此源类型并不严格指示游戏控制器是否具有方向键按钮,尽管大多数游戏手柄通常具有方向控制。源类型
SOURCE_DPAD表示输入设备具有方向键按钮(例如DPAD_UP)。源类型表示输入设备具有模拟控制杆(例如,记录沿和 的
SOURCE_JOYSTICK移动的操纵杆)。AXIS_XAXIS_Y
您可能还想检查支持多个控制器输入。
| 归档时间: |
|
| 查看次数: |
889 次 |
| 最近记录: |