![](/img/trans.png)
[英]Android Multi-Touch Bug: Max Number of Pointers drops to 2 Randomly
[英]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;
}
}
lp
和fp
值不在乎正在检查哪个手指 。 如果要一次检测多个触摸手势,则需要根据是哪个手指来区分检测。
您可以通过查看每个手指唯一的Touch.fingerId
值来实现。 手指只是在触摸屏上移动时分配给给定触摸点的ID,以便从当前也在屏幕上的其他触摸点识别手指。
您需要调整代码以处理如何存储所需的信息才能完成所需的操作,但这应该可以帮助您入门。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.