背景
公司最近在做无人机这方面的项目,App操作界面上有两个控制飞机的虚拟摇杆,在网上翻了翻,基本上都是用cocos2dx,unity3做的。然而我并不会,于是就只能自己动手了。
大概过程
1、两张图片,一张背景图,一张摇杆图片。
2、手指在圆内移动时,摇杆图片跟随手指移动即可。
3、手指移动到圆外,如下图所示,p点手指在屏幕上的坐标,p' 点就是摇杆图片最终坐标。
4、手指离开屏幕,摇杆回到正中心位置。
具体实现 (可以结合上下图来看)
主要就是 圆参数方程 x = m + r*cosθ, y = n + r*sinθ ; (m,n)为圆心
带入具体的数值就OK了
point:手指当前的坐标; rect:背景图的范围
注意
因为坐标系跟我们高中学的有一点点不同,需要简友稍稍留意一点。
算偏移量的时候都是用的正数,所以要根据象限来判断是需要 “+” 或者是 “-”。
这里小球看起来好像并没有正好在圆上,是因为背景图四周留有空隙,换一张即可解决。
补充
后来重新分析了一下过程,在下一篇文章中做了一点改进,请移步到iOS 增强版虚拟摇杆(ZMJoystickPlus)
结束语
项目刚开始,还比较简陋,以后有新的功能我会持续更新的。
对项目中如有写的不对或是有不理解的地方欢迎骚扰我。
QQ: 893422739
技术讨论群(PP-iOS学习交流群):323408051 欢迎萌新加入讨论学习,也欢迎大神指点问题。
ps:我在里面划水! <群昵称:居然说我昵称太长>
项目地址:https://github.com/Hziming/ZMJoystick觉得有帮助的还望点颗星来支持一下!!!