iOS 一款简单的虚拟摇杆(ZMJoystick)

背景

公司最近在做无人机这方面的项目,App操作界面上有两个控制飞机的虚拟摇杆,在网上翻了翻,基本上都是用cocos2dx,unity3做的。然而我并不会,于是就只能自己动手了。

大概过程

1、两张图片,一张背景图,一张摇杆图片。

2、手指在圆内移动时,摇杆图片跟随手指移动即可。

3、手指移动到圆外,如下图所示,p点手指在屏幕上的坐标,p' 点就是摇杆图片最终坐标。

4、手指离开屏幕,摇杆回到正中心位置。

iOS 一款简单的虚拟摇杆(ZMJoystick)_第1张图片
图一


具体实现 (可以结合上下图来看)

主要就是  圆参数方程 x = m + r*cosθ, y = n + r*sinθ ; (m,n)为圆心

带入具体的数值就OK了

 point:手指当前的坐标; rect:背景图的范围

iOS 一款简单的虚拟摇杆(ZMJoystick)_第2张图片
具体实现


iOS 一款简单的虚拟摇杆(ZMJoystick)_第3张图片
效果图


注意

因为坐标系跟我们高中学的有一点点不同,需要简友稍稍留意一点。

算偏移量的时候都是用的正数,所以要根据象限来判断是需要 “+” 或者是 “-”。

这里小球看起来好像并没有正好在圆上,是因为背景图四周留有空隙,换一张即可解决。

补充

后来重新分析了一下过程,在下一篇文章中做了一点改进,请移步到iOS 增强版虚拟摇杆(ZMJoystickPlus)

结束语

项目刚开始,还比较简陋,以后有新的功能我会持续更新的。

对项目中如有写的不对或是有不理解的地方欢迎骚扰我。

QQ: 893422739

技术讨论群(PP-iOS学习交流群):323408051  欢迎萌新加入讨论学习,也欢迎大神指点问题。

ps:我在里面划水!  <群昵称:居然说我昵称太长>

项目地址:https://github.com/Hziming/ZMJoystick觉得有帮助的还望点颗星来支持一下!!!

你可能感兴趣的:(iOS 一款简单的虚拟摇杆(ZMJoystick))