基于Cocos2d-x实现的旋转控件及其应用方法技术

技术编号:12531171 阅读:98 留言:0更新日期:2015-12-18 02:42
本发明专利技术涉及一种基于Cocos2d-x实现的旋转控件及其应用方法,旋转控件包括一中心部件和两旋转部件组,两旋转部件组的位置相同,通过点击中心部件,两旋转部件组进行切换;各旋转部件组中均包括若干旋转部件,各旋转部件以中心部件为中心,围绕中心部件均匀设置。旋转控件的应用方法包括:计算中心部件和旋转部件的可触摸点击区域;在旋转部件的可触摸点击区域中,处理旋转事件;在中心部件和旋转部件的可触摸点击区域中,处理点击事件;通过点击中心部件使两旋转部件组进行切换。本发明专利技术的有益效果为:能够对手机或平板电脑中被遮挡的选择栏进行选择,并使用户利用单手就能够对大屏幕手机或平板电脑中的用户界面进行操作。

【技术实现步骤摘要】

本专利技术属于计算机领域,具体涉及一种基于C〇C〇S2d-X实现的旋转控件及其应用 方法。
技术介绍
Cocos2d_x是一个支持多平台的2D手机游戏引擎,使用C++开发,基于OpenGL ES和Cocos2d_iphone,Cocos2d_x项目可以很容易地建立和运行在iOS,Android和黑莓 Blackberry等操作系统中。现有技术中有些用户界面中的选择栏常被遮挡,无法进行选择。 另外,随着手机、平板电脑等移动终端的显示屏尺寸越来越大,用户只能双手对用户界面上 的选择栏进行选择。
技术实现思路
为了解决现有技术存在的上述问题,本专利技术提供了一种基于C〇C〇S2d-x实现的旋 转控件及其应用方法。 本专利技术所采用的技术方案为:一种基于C〇C〇S2d-x实现的旋转控件,其采用 Cocos2d_x引擎提供的CCControlButton控件创建而成;仓ij建的所述旋转控件包括一中心 部件和两旋转部件组,两所述旋转部件组的位置相同,通过点击所述中心部件,两所述旋转 部件组进行切换;各所述旋转部件组中均包括若干旋转部件,各所述旋转部件以所述中心 部件为中心,围绕所述中心部件均匀设置。 进一步地,所述中心部件和各所述旋转部件均采用相同的正六边形结构,一个所 述旋转部件组中包括六个所述旋转部件;设定采用的正六边形中两平行边之间的垂直距 离为W,所述中心部件的中心点坐标为(0, 0),则第一至第六所述旋转部件围绕所述中心 部件初始摆放时,各所述旋转部件的中心点坐标分别为:(-W,0),(-W/2, tan( π /3)*W/2), (W/2, tan (Jr /3) *W/2),(W,0),(W/2, -tan (Jr /3) *W/2),(-W/2, -tan (Jr /3) *W/2)。 进一步地,所述中心部件采用边长为L的正方形,各所述旋转部件均采用边长为L 的带缺口的正方形,一个所述旋转部件组中包括四个所述旋转部件;设定所述中心部件的 中心点坐标为(〇, 〇),则第一至第四所述旋转部件围绕所述中心部件初始摆放时,各所述旋 转部件的中心点坐标分别为:(-L/2, L/2),(L/2, L/2),(L/2, -L/2),(-L/2, -L/2)。 进一步地,所述中心部件采用半径为R的圆形,所述旋转部件采用半径为r的 圆形,一个所述旋转部件组中包括八个所述旋转部件;设定所述中心部件的中心点坐标 为(〇, 〇),则第一至第八所述旋转部件围绕所述中心部件初始摆放时,各所述旋转部件 的中心点坐标分别为:(_ (R+r),0),(- (R+r) tan (45 ° ),(R+r) tan (45 ° )),(0,(R+r)), ((R+r)tan(45° ), (R+r)tan(45° )), (0, (R+r)), ((R+r)tan(45° ), -(R+r)tan(45° )), (0,-(R+r)), (-(R+r) tan (45° ), - (R+r) tan (45° ))〇 -种基于Cocos2d_x实现的旋转控件的应用方法,其包括以下步骤:1)计算中 心部件和旋转部件的可触摸点击区域;2)在旋转部件的可触摸点击区域中,处理旋转事 件,其具体包括:设定手指开始的触摸点为Pn i (Xn u yn D,可触摸点击区域的中心点为 C(x〇, y〇),触摸点Pn "χη η yn J与中心点C(x0, y0)之间的连线与水平面之间的夹角为a n 1; 手指移动到下一个触摸点Ρη(χη,yn),触摸点Ρη(χ η,yn)与中心点C(x。,y。)之间的连线与水平 面之间的夹角为Ctn;根据三角反正切函数计算得到旋转部件的旋转角度α 4 1},即α 4 1} =arTanl,其中,;旋转部件按照旋转角度 a 4 1}进行旋转;依次类推,将手指当前移动到的触摸点P n(Xn,yn)作为开始触摸点,手指 移动到下一个触摸点Pn+1 (xn+1, yn+1),触摸点Pn+1 (xn+1, yn+1)与中心点C (X。,y。)之间的连线与 水平面之间的夹角为a "+1;根据三角反正切函数计算得到旋转部件的旋转角度a (η+1)η,即 Q (n+l)n= Q n+l_ Q n? 其中,*旋转部件按照旋转角度a (n+1)n进行旋转; 其中,η多1 ;3)在中心部件和旋转部件的可触摸点击区域中,处理点击事件,其具体包括: 基于Cocos2d_x中基础tag属性,为中心部件和旋转部件设置不同的tag值,每次事件完成 后,遍历所有的中心部件和旋转部件。如果触摸结束点在中心部件内,则判定为中心部件被 点击;如果触摸结束点在旋转部件内,则判定为旋转部件被点击,然后处理中心部件或旋转 部件对应的用户选项;4)通过点击中心部件使两旋转部件组进行切换。 进一步地,所述步骤2)中,对旋转控件的旋转位置角度进行矫正,其过程为:计算 得到旋转控件当前累计旋转角度,对当前累计旋转角度与最接近的标准位置角度作差,再 旋转该差值即可。 进一步地,所述步骤3)中,点击事件的判定方法为:(1)预设偏移最大参考值D ; (2)计算触摸开始点与触摸结束点之间的欧氏距离;(3)将计算得到的欧氏距离与偏移最 大参考值D进行比较,当计算得到的欧式距离小于偏移最大参考值D时,判定为点击事件; 否则,判定为移动事件。 进一步地,所述步骤3)中,中心部件和各旋转部件均采用相同的正六边形结构 时,中心部件中有效点击区域为正六边形的内切圆,该内切圆的半径为W/2 ;整个旋转控件 中有效点击区域为以中心部件的中心点为圆心,半径为I. 5W的圆。 由于采用以上技术方案,本专利技术的有益效果为:基于C〇C〇S2d-x创建了一种旋转 控件,并利用该旋转控件实现旋转或点击,将该旋转控件与用户选项相结合,形成一用户界 面,该旋转控件能够广泛应用于手机或平板电脑中,解决用户界面中选择栏被遮挡而无法 选择的问题;另外,采用本专利技术旋转控件能够帮助用户使用单手对大屏幕手机或平板电脑 上的用户界面进行操作。【附图说明】 图1是本专利技术实施例1中旋转控件的结构示意图;其中,Cl表示中心部件的中心 点,P11、P12、P13、P14、P15和P16分别表示第一至第六旋转部件的中心点; 图2是本专利技术实施例2中旋转控件的结构示意图;其中,C2表示中心部件的中心 点,P21、P22、P23和P24分别表示第一至第四旋转部件的中心点; 图3是本专利技术实施例3中旋转控件的结构示意图;其中,C3表示中心部件的中心 点,P31、P32、P33、P34、P35、P36、P37和P38分别表示第一至第八旋转部件的中心点; 图4是本专利技术基于Cocos2d_x实现的旋转控件的应用方法的流程图。【具体实施方式】 下面结合附图和实施例对本专利技术进行详细的描述。 本专利技术提供了一种基于Cocos2d_x实现的旋转控件,该旋转控件采用Cocos2d_x 引擎提供的CCControlButton控件创建而成。其中,仓Il建的旋转控件包括一中心部件和两 旋转部件组,两旋转部件组的位置相同,通过点击中心部件,两旋转部件组进行切换。各旋 转部件组中均包括若干旋转部件,各旋转部件以中心部件为中心,围绕中心部件均匀设置。 实施本文档来自技高网...

【技术保护点】
一种基于Cocos2d‑x实现的旋转控件,其特征在于:所述旋转控件采用Cocos2d‑x引擎提供的CCControlButton控件创建而成;创建的所述旋转控件包括一中心部件和两旋转部件组,两所述旋转部件组的位置相同,通过点击所述中心部件,两所述旋转部件组进行切换;各所述旋转部件组中均包括若干旋转部件,各所述旋转部件以所述中心部件为中心,围绕所述中心部件均匀设置。

【技术特征摘要】

【专利技术属性】
技术研发人员:岳伟刘斌
申请(专利权)人:上海时年信息科技有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1