当前位置: 首页 > news >正文

琼海市规划建设局网站国内app开发公司排名汇总

琼海市规划建设局网站,国内app开发公司排名汇总,网站下载的软件怎么安装,小程序模板消息推送为什么要使用非固定摇杆 许多同学在开发摇杆功能时,会将摇杆固定在屏幕左下某一位置,不会让其随着大拇指触摸点改变,而且玩家只有按在了摇杆上才能移动人物(触摸监听事件在摇杆精灵上)。然而,不同玩家的大拇指长度不同…

为什么要使用非固定摇杆

许多同学在开发摇杆功能时,会将摇杆固定在屏幕左下某一位置,不会让其随着大拇指触摸点改变,而且玩家只有按在了摇杆上才能移动人物(触摸监听事件在摇杆精灵上)。然而,不同玩家的大拇指长度不同,使用这种固定摇杆可能会导致部分玩家无法快速按到摇杆,从而影响了游戏操作性。

非固定摇杆不需要玩家去寻找摇杆位置,玩家的大拇指只要在屏幕左下区域按下,摇杆就会自动被设置到大拇指按下的位置(触摸监听事件在画布上),游戏操作性因此提升。

注:有关固定摇杆的具体实现原理可以前往查看笔者的这篇文章。
P.S. 上面的摇杆文章发布的时间是19年10月,时间过得好快。


运行效果和源码获取

非固定摇杆

Cocos Creator版本: 3.8.4
项目源码获取:搜索公号All Codes,公号后台发送"非固定摇杆"


实现原理

1: 在摇杆组件生效时记录摇杆的位置。

/* 记录摇杆最初位置 */
recordOriginalPos() {this.originalPos = new Vec3(this.node.position)
}

2: 在TOUCH_START事件函数中,判断玩家触摸点是否在屏幕左下区域,是的话将摇杆设置到触摸点位置,不是的话则直接返回。
在这里插入图片描述

onTouchStart(event: EventTouch) {// 获取触摸点坐标let loc = event.getUILocation()let pos = this.canvas.getComponent(UITransform).convertToNodeSpaceAR(new Vec3(loc.x, loc.y, 0))// 判断触摸点是否在画布左下区域// 不是的话直接返回,是的话设置摇杆底部面板位置if (pos.x > 0 || pos.y > 0) {return}this.node.setPosition(pos)this.isTouchAreaCorrect = true
}

3: 在TOUCH_MOVE事件函数中,更新摇杆中心按钮在摇杆底部面板上的位置。
在这里插入图片描述

onTouchMove(event: EventTouch) {if (!this.isTouchAreaCorrect) {return}// 在该事件中我们只需要设置摇杆中心按钮的位置let posDelta = event.getDelta()this.joystickBtn.setPosition(new Vec3(this.joystickBtn.position).add3f(posDelta.x, posDelta.y, 0))// 获取移动方向和旋转角度this.dir = new Vec3(this.joystickBtn.position.x, this.joystickBtn.position.y, 0).normalize()if (this.dir.y > 0) {this.angle =  Vec3.angle(this.dir, new Vec3(1, 0, 0)) * 180 / Math.PI}else {this.angle =  -Vec3.angle(this.dir, new Vec3(1, 0, 0)) * 180 / Math.PI}// 设置主角isMoving变量为truethis.playerComp.isMoving = true 
}

4: 在TOUCH_END和TOUCH_CANCEL事件函数中,重置相关变量并复原摇杆位置。摇杆底部面板回到在第1步中记录的位置,摇杆中心按钮回到摇杆底部面板中心位置。

onTouchEnd(event: EventTouch) {// 复原摇杆位置,重置相关变量this.node.setPosition(this.originalPos)this.joystickBtn.setPosition(Vec3.ZERO)this.playerComp.isMoving = falsethis.isTouchAreaCorrect = false
}onTouchCancel(event: EventTouch) {// 复原摇杆位置,重置相关变量this.node.setPosition(this.originalPos)this.joystickBtn.setPosition(Vec3.ZERO)this.playerComp.isMoving = falsethis.isTouchAreaCorrect = false
}

王者荣耀中的非固定摇杆
请添加图片描述

http://www.yayakq.cn/news/22995/

相关文章:

  • 怎么做网站赚钱名师工作室网站建设现状调查
  • 温州建设工程监理管理学会网站全屏网站怎么做
  • 网站设计公司长沙潍坊市安丘建设局网站
  • 网站开发周期优秀网页设计作品案例欣赏
  • 用phpcms建站的网站简易的网站建设
  • 梁山网站建设公司wordpress mysql权限设置密码
  • 广州设计网站建设系统集成项目管理
  • 网站制作完工验收单网站右侧返回顶部
  • 怎么向百度提交网站常见的营销策略有哪些
  • 深圳市南山区做网站的小公司网站建设一样注意什么
  • 手机网站生成app客户端分类目录网站平台
  • 南京市建设工程网站易语言网站建设
  • 广西网站建设开发外包网站开发中什么是站点
  • 广州建设网站是什么关系家在龙岗
  • 电商设计网站素材一键优化表格
  • 网站建设 发展方向做网站毕设任务书
  • 网站文章图片如何跳转无锡网络公司有哪些
  • 怎么使用域名访问网站常州淄博网站优化
  • 网站模板价格汽车配件响应式网站
  • 中国循环经济网站开发与设计html网站作业
  • 做网站自己申请域名还是建站公司域名解析 网站建设
  • 网站建设的作用和意义网站源码怎么写
  • 广州市建设和水务局网站遂宁市做网站的公司
  • 网站建设预付流程网络科技公司销售是做什么的
  • 我的网站被黑了wordpress同步文章插件
  • 网站推广途径和推广要点的案例讨论如何学编程入门教程
  • 除了外链 还有什么办法使网站提高排名汉中网络推广
  • 电脑网站和手机网站怎么做相同路径学历提升文案
  • 璧山网站建设东莞小程序开发解决方案
  • 门户类网站开发多少钱网上商城开发方案