下面给大家介绍的这个手游摇杆系列,是当前手游开发中常用到的设计。摇杆作为ARPG游戏中的标配,目前摇杆主要有两种方式: 1. 固定式 2. 跟随式

一、摇杆显示

假设 外环旧的位置:posBig 外环新位置:posBigNew 外环半径:R 外环圆心:O 内环旧的位置:posSmall 外环圆心:o 内环新的位置:posSmallNew 触摸位置:p

1 固定式

内环在外环范围内移动; 外环位置固定,不能移动;

更新策略: 判断触摸位置p是否在外环内,是则直接内环设置内环到p点,如果不是,则:

op = Vec2(O.x - posSmall.x, O.y - posSmall.y); // 计算新旧位置之间的向量

op.normallize();// 归一化

posSmallNew = posSmall + op * R

2 跟随式

内环始终跟着p点移动; 外环当触摸点P在外环范围内时,大环不移动;否则,外环会跟随内环移动;

更新策略: 如果触摸点超出之后,外环位置计算规则为

判断触摸位置p是否在外环内,是则直接内环设置内环到p点,如果不是,则:

op = Vec2(p.x - posSmall.x, p.y - posSmall.y); // 计算新旧位置之间的向量

op.normallize();// 归一化

posBigNew = posSmall - op * R

二、方向控制

方向控制分为四方向和把方向两种,有一种统一的计算方式,就是计算内外环圆心的角度,然后根据角度将其定义为四方向:上下左右,八方向加上:左上,右上,左下,右下。

角度可以使用三角函数计算:

//得到两点x的距离

float x = o.x - O.x;

//得到两点y的距离

float y = o.y - O.y;

//算出斜边长度

float l = sqrt(Math.pow(x,2) + Math.pow(y,2));

//得到这个角度的余弦值

var cosAngle = x / l;

//通过反余弦定理获取到期角度的弧度

var rad = acos(cosAngle);

四方向判断:

if(p_rad>=-PI/4&&p_rad

R_Direction="right";

else if(p_rad>=PI/4&&p_rad<3*PI/4)

R_Direction="up";

else if((p_rad>=3*PI/4&&p_rad<=PI)||(p_rad>=-PI&&p_rad

R_Direction="left";

else if(p_rad>=-3*PI/4&&p_rad

R_Direction="down";

八方向判断:

if(p_rad>=-PI/8&&p_rad

R_Direction="right";

else if(p_rad>=PI/8&&p_rad<3*PI/8)

R_Direction="up";

else if((p_rad>=7*PI/8&&p_rad<=PI)||(p_rad>=-PI&&p_rad

R_Direction="left";

else if(p_rad>=-5*PI/5&&p_rad

R_Direction="down";

else fi(p_rad>=5*PI/8&&p_rad<7*PI/8)

R_Direction = "left_up";

else if(p_rad>=-7*PI/8&&p_rad

R_Direction = "left_down";

else if(p_rad>=PI/8&&p_rad<3*PI/8)

R_Direction = "rigth_up";

else if(p_rad>=-3*PI/8&&p_rad

R_Direction = "rigth_down";

后面就是根据方向和任务移动的速度,修改人物的坐标值。

摇杆控制方向原理_手游摇杆(零)摇杆设计原理相关推荐

  1. Unity小游戏——移动的小船船(摇杆控制方向)

    关键功能: 1.摄影机跟随船体移动 2.船体在水面上晃动 3.摇杆控制方向 摇杆控制方向的话,这里我是简单的使用了一个Unity的插件:EasyTouch,EasyTouch里面的有一个EasyJoy ...

  2. 视频教程-UE4 Unity FPS 安卓手游 和平战场 逆向设计开发-其他

    UE4 Unity FPS 安卓手游 和平战场 逆向设计开发 精通windows下C,C++编程,深入理解指针,数据结构,精通linux下C,C++编程,多线程及锁机制,进程间通信,TCP和IP协议, ...

  3. Unity手游实战:ECS设计思想和Entitas插件

    Unity手游实战:ECS设计思想和Entitas插件 一.ECS设计思想 ECS设计理念并不是一个新兴的事物,早在90年代就存在了.但是走入大众视野则要归功于<守望先锋>这款游戏.201 ...

  4. 手柄xinput模式_手游轮盘磨手怎么办?谷粒金刚PRO手柄自定义按键,轻松盲操

    在这智能手机时代,手机已成为数码设备中使用频率最高的产品,同时手游已成为大家休闲时的主要娱乐方式.但大家手游时最大的痛点就是轮盘磨手,严重的还会出现手指发木的情况,其实最好的解决的方法就是用手柄,而且 ...

  5. mysql在手游中的作用_手游业务MySQL数据库虚拟化漫谈 | By 肖力

    作者简介 肖力, 资深运维专家,拥有15年运维经验,就职于金山西山居,担任系统运维经理,曾就职于盛大游戏,在运维圈有极大的影响力.国内最顶尖的KVM专家之一,从2009年开始研究KVM技术,是国内较早 ...

  6. mysql在手游中的作用_数据库虚拟化技术_手游业务MySQL数据库虚拟化漫谈 | By 肖力-云栖社区...

    作者简介 肖力, 资深运维专家,拥有15年运维经验,就职于金山西山居,担任系统运维经理,曾就职于盛大游戏,在运维圈有极大的影响力.国内最顶尖的KVM专家之一,从2009年开始研究KVM技术,是国内较早 ...

  7. VS2015占内存大吗?_手游越来越占内存,80%的手机安装一个大游戏就满了,厂商肉搏...

    智能手机刚出的时候手机的内部存储空间只有2G,当时的软件很小,2G的存储足够用了,但是随着手机和手游的不断发展,手机的内存越来越大,手游也越来越大.目前主流手机的内存都在32G以上,主流的手游差不多都 ...

  8. ios开发 多人语音聊天_手游语音市场的现状、机遇与挑战

    文/手游那点事小鱼原创 2014年持续火热的手游市场成就了一大批企业的上市梦,同时也在大环境下产生了对系列手游增值服务的需求.基于玩家对手游社交性的需求,以及借鉴传统端游,页游中成功的社交体系,手游市 ...

  9. 自走棋电脑版_手游版《自走棋》上线试玩

    自走棋测试服最近已经陆续开放内部测试,经过了一番试玩之后,发现和电脑版还是有一些区别,大体上还是能够保持一致的很期待公测之后的版本.例如10金币吃1利息,连胜奖励,连败奖励,升级经验5金币,刷新商店2 ...

最新文章

  1. mysql安装好需要优化配置一下_Mysql的安装、配置、优化
  2. android的支付宝sdk 提示系统繁忙 请稍后再试_《活动运营中防系统扑街指南》
  3. AndroidStudio3.4.2 gradle5.1.1 apt注解解释器不执行
  4. 用c语言实现存储和读取图片文件,C++实现单张图片读取和保存
  5. 工作382-vant弹框不能直接用
  6. 输入三个字符串,按由小到大的顺序输出 字符串排序-一种简单的方法
  7. 转《针对不同版本的ie调用不同css样式》
  8. python基础编程语法-Python编程入门——基础语法详解(经典)
  9. 乐高spike python_SPIKE Prime科创套装 篇四:乐高教育SPIKE Prime入门编程和搭建活动教学...
  10. 青龙面板安装傻妞(sillyGirl)机器人服务2022年3月8更新
  11. 云呐IT服务台在企业IT管理中的作用
  12. 华为ar路由器wed登陆和配置方法及故障问题
  13. vc 判断哪个按键 被按下 消息 按键 状态
  14. 如何让女朋友说Yes I Do,数据分析助力客户管理秘籍
  15. 获得旅行青蛙无限三叶草方法及apk
  16. Linux 系统时间EST改CTS
  17. k8s多节点master部署
  18. 【PhotoShop】去除脸部油光
  19. 企业网站制作网站安全评估技术与漏洞挖掘技术
  20. 悼念:黑白素色网页背景设置教程

热门文章

  1. arXiv | Per-FedAvg:一种联邦元学习方法
  2. sql常用的语句及其逻辑
  3. 组件 :normal ordered local Broadcasts
  4. 杰奇php手机登陆自动跳转,杰奇cms通过js代码,实现微信访问自动登录
  5. 接入交换机,汇聚交换机,核心交换机
  6. 云栖科技评论第49期:在前沿科技发展中坚守人类固有信念
  7. EEPROM、EPROM、ROM、RAM、FLASH
  8. [Spring] 注入Bean属性
  9. docker mysql:5.6镜像安装mysqlreport、pt-query-digest
  10. 问渠那得清如许?为有源头活水来。——java面向对象的思想