繁体   English   中英

我的第一个Android游戏上的多点触控错误

[英]Multi-touch bug on my first Android game

现在,我正在开发一款游戏,如果在屏幕左侧向上或向下滑动,则可使角色向上或向下移动。 然后,如果我点击屏幕右侧,他也可以发射弹丸。 我已成功使其正常运行,但问题是,当我点击右侧屏幕时,滑动功能不起作用。 两者仅在我执行其中之一时才有效。 如果我发射弹丸,则无法移动角色。 有什么建议么? 赞赏先进。

这是代码:

对于滑动运动功能:

void Swipe() {

    if (Input.touchCount > 0) {

        Touch t = Input.GetTouch(0);

        if (t.phase == TouchPhase.Began)
        {

            lp = t.position;
            fp = t.position;
            text.text = fp.x.ToString();
        }
        else if (t.phase == TouchPhase.Ended)
        {

            lp = t.position;

            //Swipe Up
            if (fp.y < lp.y && fp.x < 400)
            {


                currentLane += 1;


            }
            //Swipe Down
            else if (fp.y > lp.y && fp.x < 400)
            {

                currentLane -= 1;

            }
        }



    }

}

这是敲击或发射弹丸功能的代码:

    void FireBullets() {

    interval += 2 * Time.deltaTime;

    anim.SetBool("Attacking", firing);


    if (Input.touchCount > 0 && interval > .75f) {


        Vector3 bulletTouchPos;

        Touch bulletT = Input.GetTouch(0);
        bulletTouchPos = bulletT.position;

        if (bulletT.phase == TouchPhase.Began) {

            if (bulletTouchPos.x > 400)
            {

                interval = 0;
                firing = true;
                //Fire Bullets
                Instantiate(bullets, new Vector3(transform.position.x + 1.2f, transform.position.y + .3f, transform.position.z), Quaternion.identity);
            }
        }


    }else
    {

       firing = false;

    }


}

您的lpfp值不在乎正在检查哪个手指

如果要一次检测多个触摸手势,则需要根据是哪个手指来区分检测。

您可以通过查看每个手指唯一的Touch.fingerId值来实现。 手指只是在触摸屏上移动时分配给给定触摸点的ID,以便从当前也在屏幕上的其他触摸点识别手指。

您需要调整代码以处理如何存储所需的信息才能完成所需的操作,但这应该可以帮助您入门。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM