发明内容
为了克服上述所指的现有技术中的不足之处,本发明提供一种触摸屏的滑动触控方法,以并提供持续滑动的操控方式控制游戏界面的物体运动,将手指在触摸屏上的一系列运动轨迹转换成连续的命令,提升操作体验。
本发明是通过以下技术方案实现的:
一种触摸屏的滑动触控方法,其步骤包括:
a、建立触控区域的对应十字键或者八方向键的若干个基本向量;
b、检测手指在触控区域输入的持续滑动动作,并读取滑动轨迹所行经的接触点坐标,利用最小二乘法逐点拟合所述离散点形成依次相连的若干线段并赋予方向成为向量,所述每一向量对应一触控事件,且该每一触控事件包含的离散点个数小于预设的极限点数;
c、对触控事件进行有效判断,当一触控事件中包含的离散点数目小于预设的有效点数,忽略该触控事件,否则对该触控事件执行步骤d;
d、依次计算每一触控事件的向量与各基本向量之间的夹角,当该向量与一基本向量的夹角为最小或者小于参照值γ时,即对系统发出此基本向量所代表的按键指令。
所述步骤a的若干个基本向量包括对应十字键的朝上、下、左、右四个方向向量,或者包括对应八方向键的朝上、下、左、右、左上、左下、右上、右下八个方向向量。
所述步骤b根据输入顺序依次读取滑动轨迹所行经的接触点P1、P2、P3……Pn,n为大于零的自然数,利用最小二乘法将所述离散点拟合成依次相连的若干有向线段的步骤包括:
以点Pa+1作为一触控事件的起点,点Pa+2作为该触控事件的第二点,a为大于等于零的整数;
读取点Pa+m,m为大于2且小于n的自然数,拟合离散点Pa+1、Pa+2……Pa+m-1得到一以点Pa+1为起点的有向线段,连接点Pa+m-1、Pa+m得到一以Pa+m-1为起点的有向线段,当两有向线段的夹角小于等于参照值β,将点Pa+m纳入该当前触控事件,否则,将以点Pa+1为起点的该有向线段作为代表当前触控事件的向量,点Pa+m-1作为当前触控事件的终点及下一触控事件的起点。
进一步地,所述步骤b读取点Pn时,还包括:判断当前触控事件包含的离散点个数是否大于等于预设的极限点数,若是,则以点Pn作为当前触控事件的终点及下一触控事件的起点。
所述触控事件的向量为利用最小二乘法由该触控事件包含的所有离散点拟合而成的有向线段。
所述步骤b中读取滑动轨迹所行经的接触点坐标是指手指触摸触摸屏时系统反馈的不连续的点坐标。
所述参照值γ的范围为10°-20°,参照值β的范围为20°-45°。
所述步骤d对系统发出某一基本向量所代表的按键指令是指对系统发出该基本向量所代表的模拟十字键/八方向键/功能键/变量增减/游戏摇杆的指令。
与现有技术相比,本发明改变了传统游戏控制中的点触操控方式,充分利用触摸屏的空间,通过在触摸屏上的滑动来操控游戏方向,并提供持续滑动的操控方式,提供了一种持续滑动代替按键方式的算法,将手指输入的滑动产生的坐标用该算法转换成设定的命令,控制游戏界面的物体运动,将手指在触摸屏上的一系列运动轨迹转换成连续的上/下/左/右/左上/右上/左下/右下多种命令,使各类游戏可以非常方便的移植到手机平台,操作体验也会大大提升,算法中还包含了对错误操作的容错的优化处理。
具体实施方式
为了便于本领域技术人员的理解,下面结合附图对本发明作进一步的描述。
一种触摸屏的滑动触控方法,其步骤包括:
a、建立触控区域的对应十字键或者八方向键的若干个基本向量;
b、检测手指在触控区域输入的持续滑动动作,并读取滑动轨迹所行经的接触点坐标,利用最小二乘法逐点拟合所述离散点形成依次相连的若干线段并赋予方向成为向量,所述每一向量对应一触控事件,且该每一触控事件包含的离散点个数小于预设的极限点数;
c、对触控事件进行有效判断,当一触控事件中包含的离散点数目小于预设的有效点数(可设置为3个或者其他合理数目)时,忽略该触控事件,否则对该触控事件执行步骤d;
d、依次计算每一触控事件的向量与各基本向量之间的夹角,当该向量与一基本向量的夹角为最小或者小于参照值γ时,即对系统发出此基本向量所代表的按键指令。
所述步骤a的若干个基本向量包括对应十字键的朝上、下、左、右四个方向向量,或者包括对应八方向键的朝上、下、左、右、左上、左下、右上、右下八个方向向量。
在本实施例中,如附图3所示,触控区域设有8个基本向量。其中,向量OA代表上,等同于按下方向键上;向量OB代表右上,等同于按下方向键右上;向量OC代表右,等同于按下方向键右;向量OD代表右下,等同于按下方向键右下;向量OE代表下,等同于按下方向键下;向量OF代表左下,等同于按下方向键左下;向量OG代表左,等同于按下方向键左;向量OH代表左上。等同于按下方向键左上。
对持续触控中每一触控事件的向量与基本向量逐一求夹角,当识别某向量与其中一基本向量的夹角为最小或者小于参照值γ时,则对系统发出此基本向量所代表的按键指令,所述参照值γ的范围为10°-20°,在本发明的较佳实施例中,γ为10°。例如,当一向量与基本向量OE的夹角小于10°,则启用OE代表的按键指令,控制游戏中的物体向屏幕下方运动。
进一步地,所述步骤b中读取滑动轨迹所行经的接触点坐标是指手指触摸触摸屏时系统反馈的不连续的点坐标。在本发明所启发的其他实施方案中,所述接触点坐标通过等时间间距或者等长度间距地依次读取滑动轨迹得带,即可以通过定时读取接触点坐标的方式以此获取离散点,也可以通过采集距离相等的接触点坐标来获取持续滑动手势中的多个离散点。
所述步骤b根据输入顺序依次读取滑动轨迹所行经的接触点P1、P2、P3……Pn,n为大于零的自然数,如图5所示,公开了一实施例中利用最小二乘法将所述离散点拟合成依次相连的若干有向线段的步骤,包括:
S001、读取触控事件的起点Pa+1、Pa+2,以点Pa+1作为一触控事件的起点,点Pa+2作为该触控事件的第二点,a为大于等于零的整数;
S002、判断是否检测到用户手指远离事件,是则持续滑动动作结束,否则继续下一步骤;
S003、读取点Pa+m;
S004、利用最小二乘法拟合离散点Pa+1、Pa+2……Pa+m-1得到一以点Pa+1为起点的有向线段;
S005、连接点Pa+m-1、Pa+m得到一以Pa+m-1为起点的有向线段;
S006、判断两有向线段的夹角是否小于等于参照值β,是则执行步骤S008,否则转入步骤S007;
S007、以点Pa+m-1为该触控事件的终点及下一触控事件的起点;
S008、判断触控事件包含的离散点个数是否大于等于极限点数,是则执行步骤S009,否则转入步骤S010;
S009、以点Pa+m作为该触控事件的终点及下一触控事件的起点;
S0010、将点Pa+m纳入该触控事件,并继续读取下一接触点。
在上述步骤中读取点Pa+m时,包括了判断当前触控事件包含的离散点个数是否大于等于预设的极限点数,若是,则以点Pa+m作为当前触控事件的终点及下一触控事件的起点。
在读取点坐标时,实时检测用户是否存在手指的远离事件,若是,则判断持续滑动动作结束,并终止所触发的事件;否则继续读取下一点坐标。所述某一触控事件的向量为利用最小二乘法由纳入该触控事件的所有离散点拟合而成的有向线段。当读取至最后一点时,以该点为当前触控事件的终点,利用最小二乘法拟合当前触控事件的起点至该点的离散点的直线可得到该当前触控事件的向量。
在本发明中,所述参照值β的范围为20°-45°,较佳地,该参照值β取值为35°。
将本发明应用于游戏操纵时,可在触摸屏上划出一部分区域来让使用者操控游戏方向,例如屏幕的右半边。用户在方向操控区域的操作包括DOWN、MOVE、UP三种事件。DOWN事件解释为手指的接近事件,UP解释为手指的远离事件,MOVE事件则会产生一连串不连续的点。
以图4所示的滑动轨迹所行经的接触点为例,图中描述了P1-P11共11个接触点,通过手指在触摸屏上滑动产生。其中,P1是持续滑动动作的开始,是DOWN(接近)事件,是一组连续操作的开始,P2-P10是MOVE事件,P11是UP(远离)事件。利用最小二乘法将所述离散点P1-P11拟合成依次相连的若干有向线段的步骤包括:
X001、用户输入P1后开始一个触控事件;
X002、读取用户手指划过的P2,此时此触控事件中只有1个点,点P2无条件加入该触控事件,作为该触控事件的第二点;
X003、读取用户手指划过的P3,系统计算点P1到点P2的向量V12,和点P2到点P3的向量V23之间的夹角小于35°,则将P3计入纳入该触控事件;
X004、读取用户手指划过的P4,使用最小二乘法计算出与P1、P2、P3拟合度最高的直线,并赋予方向P1到P3,形成向量V123,接着计算与P3到P4的向量V34的夹角,其夹角小于35°,将P4纳入该触控事件;
……
X008、读取用户手指划过的P8,系统计算P1-P7拟合形成的向量V1234567与P7到P8的向量V78夹角大于35°,则点P1-P7形成一个触控事件,以向量V1234567作为代表该触控事件的向量,点P7为该触控事件的终点及下一触控事件的起点,开始了一个新的触控事件,点P8加入该触控事件,作为该触控事件的第二点;
X009、读取用户手指划过的P9,系统计算点P7到点P8的向量V78,和点P8到点P9的向量V89之间的夹角小于35°,则将P9纳入该触控事件;
X010、读取用户手指划过的P10,使用最小二乘法计算出与P7、P8、P9拟合度最高的直线,并赋予方向P7到P9,形成向量V789,接着计算与P9到P10的向量V910的夹角,其夹角小于35°,将P10纳入该触控事件;
X011、读取用户手指划过的P11,使用最小二乘法计算出与P7-P10拟合度最高的直线,并赋予方向P7到P10,形成向量V78910,接着计算与P10到P11的向量V1011的夹角,其夹角小于35°,将P11纳入该触控事件;
X012、检测到用户手指的远离事件,将点P11作为该触控事件的终点,使用最小二乘法计算出与P7-P11拟合度最高的直线形成该触控事件的向量V7891011,以向量V7891011作为代表该触控事件的向量。
在本发明的较佳实施例中,包括对触控事件进行有效判断,当一触控事件中包含的离散点数目小于有效点数,判定该触控事件无效并忽略该触控事件,否则对该触控事件执行下一步骤。例如,前述向量V1234567所代表的触控事件的有效点数大于7,则这组连续事件开始起作用。前述向量V7891011代表的触控事件的有效点数小于7,则判定此触控事件无效。若一触控事件有效,则进入手势判定阶段,判定完成就开始执行对应的指令。任何一个触控事件开始起作用时,都会终止上一次触控事件所对应的指令。
进一步地,如附图2所示,详尽地公开了另一种实施例的触摸屏的滑动触控方法的实现流程示意图,(其中,图中所指队列是指读取接触点P10时,当前触控事件的起点至该点Pn时的点的队列)其步骤包括:
H001、依次读取用户输入的不连续点坐标;
H002、判断是否检测到UP事件,若是,执行步骤H003,否则,继续步骤H004;
H003、持续滑动动作结束,废弃所有队列,停止所有触控事件;
H004、判断是否检测到DOWN事件,若是,执行步骤H005,否则,继续步骤H006;
H005、建立一个新的队列,并执行步骤H010;
H006、判断队列中离散点个数是否大于等于极限点数,若是,执行步骤H007,否则,转入步骤H010;
H007、利用最小二乘法拟合得到队列的起点至该点前一点的向量A;
H008、求取该点前一点到该点的向量B;
H009、计算向量A与向量B的夹角是否小于β,若是,执行步骤H011,否则,转入步骤H012;
H010、将该点加入当前队列;
H011、判断离散点个数是否大于等于有效点数,若是,该队列形成一完整的触控事件,执行步骤H012,否则,转入步骤H014;
H012、判断该队列的向量是否相似于基本向量(即识别该向量是否与一基本向量的夹角小于参照值γ),若是,执行步骤H013,否则,转入步骤H014;
H013、停止所有触控事件,同时执行该基本向量所代表的按键指令并保持,并读取下一接触点,所述保持是指当读取下一接触点时,不停止该队列所触发的操作;
H014、废弃该队列,继续执行步骤H015;
H015、建立一个新的队列。
本发明中,所述对系统发出某一基本向量所代表的按键指令是指对系统发出该基本向量所代表的模拟十字键/八方向键/功能键/变量增减/游戏摇杆的指令。若按照传统按键输入方式,用户需要按下右键然后按左键,按照本发明的方法,只需要在操控区域向右滑动一段距离,然后向左滑动;若用户需要按下右键不放,只需在操控区域向右滑动一段距离后保持不动即可实现,系统对触控事件进行有效判断,判断当前触控事件中包含的离散点数目大于有效点数后,执行该触控事件的指令至下一个触控事件开始起作用,或者检测到用户手指的原理事件。
本发明的方法通过读取用户输入的滑动轨迹产生的点坐标,将点坐标经过算法转换成上下左右等的命令,控制物体运动。改变了传统游戏利用游戏手柄作为操控装置的操控方式,使各类游戏可以非常方便的移植到手机平台,操作体验也会大大提升。同时,通过参照值γ、β的范围取值,使算法中包含了对错误操作的容错的优化处理。
以上内容是结合具体的优选方式对本发明所作的进一步详细说明,不应认定本发明的具体实施只局限于以上说明。对于本技术领域的技术人员而言,在不脱离本发明构思的前提下,还可以作出若干简单推演或替换,均应视为由本发明所提交的权利要求确定的保护范围之内。