4.如何实现触控操作
触控操作概述:
随着APPLE、Samsung、SONY等众多公司,将掌机、电脑和手机等产品在触控领域的不断探索,以触控为操作的机型越来越多的被投放到市场当中。触控游戏、触控软件的大量被开发以和应用,宣布着触控时代的到来。跑酷游戏作为一直以来备受玩家亲睐的游戏,大量的移植到触控平台上。当触控游戏操作界面,摆脱了传统的点控操作,又是怎样实现玩家与游戏交互的呢?这就较之以前的跑酷游戏,需要我们先对在触控板上的操作进行指令判定,进而游戏角色根据相应指令执行相应操作。
原理:
如图4-1所示
图4-1
实现方法:
步骤1:
在游戏的主循环里会对移动输入做Tick检测,在Tick中,会记录手指的坐标移动位置。
01 | if (Input.GetScreenTouchCount () == 1) |
03 | int id = Input.GetScreenTouchID (0); |
04 | if (Input.IsFingerDown (id)) |
07 | m_pixelPos = Input.GetScreenTouchPixelPosition (id); |
12 | if (Input.IsFingerPressing (id)) |
14 | Vector2 temp = Input.GetScreenTouchPixelPosition (id); |
15 | m_Bias = temp - m_pixelPos;} |
17 | if (Input.IsFingerUp (id)) |
19 | Vector2 temp = Input.GetScreenTouchPixelPosition (id); |
20 | m_Bias = temp - m_pixelPos; |
步骤2:
可以根据这个位置信息,来判定玩家做出了左右移动或者上下滑动中哪种指令。开发者可根据自行设定的上划屏对应角色操作,来完成得到指令操作之后的角色相关操作内容。
01 | public bool IsLeftSlide() |
04 | if (Input.GetScreenTouchCount()== 1) |
06 | int id = Input.GetScreenTouchID(0); |
07 | float x = ABS(m_Bias.X); |
08 | float y = ABS(m_Bias.Y); |
24 | private float ABS( float f) |