小编Hey*_*bar的帖子

你如何使用MotionEvent.ACTION_POINTER_INDEX_SHIFT?

我一直在游戏中工作,我正在尝试制作控制器,没有什么太复杂,为此我需要跟踪2个输入(手指):1点火按钮和移动键.(上,下,左,对)

这就是问题:手指1向下,手指2向下,手指1向上,认为是2,然后手指2向上,认为是1.

D/Controlls(18849): Action Down 1
D/Controlls(18849): Coordinates 267.7908 415.24274
D/Controlls(18849): Action Pointer Down 2
D/Controlls(18849): Coordinates 281.11423 417.23993
D/Controlls(18849): Action Pointer UP 1
D/Controlls(18849): Coordinates 272.7869 419.23718
D/Controlls(18849): Action UP 2
D/Controlls(18849): Coordinates 1148.103 439.20947
Run Code Online (Sandbox Code Playgroud)

这是处理2个输入的OnTouchEvent的代码:

@Override
public boolean onTouchEvent(MotionEvent event) {
    int index = event.getActionIndex();
    int pointerId = event.getPointerId(index);
    int action = event.getActionMasked();

    int oldX, oldY;

    switch (event.getAction() & MotionEvent.ACTION_MASK) {
        case MotionEvent.ACTION_DOWN:
        {
            hero.moveControlls((int)event.getX(), (int)event.getY());
            Log.d("Controlls", "Action Down "+ pointerId);
            Log.d("Controlls", "Coordinates "+ event.getX() + " "+ …
Run Code Online (Sandbox Code Playgroud)

android multi-touch

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×1

multi-touch ×1