游戏公司面试题系列-CocosCreator实现虚拟摇杆控制角色移动中心旋转自转小球割草旋转逻辑

news2024/11/24 20:02:14

游戏公司面试题系列-CocosCreator实现虚拟摇杆控制角色移动&中心旋转自转小球&割草旋转逻辑<!!!文章末尾有完整代码下载链接地址!!!>

Hello大家好!今天我们来用最新的CocosCreator3.8.2版本完成<一些游戏公司面试题>

1、实现一下横版过关、街机类游戏中用来控制角色操作的虚拟摇杆,咱们把他封装成一个可复用的组件;

2、实现一个小球围绕某个中心点旋转自转的逻辑<在有些公司面试中经常用到>;

3、另外做一个类似割草游戏的攻击旋转的延展;

演示效果如下:

环境要求:

1、Mac/Windows

2、CocosCreator3.8.2<或以上>

3、VsCode

B站演示地址如下:

效果演示地址

<!!!文章末尾有完整代码下载链接地址!!!>

大致展示一下主要实现思路的代码逻辑如下:

数学概念==>

下面要引入两个数学概念,一个是正弦余弦和正切,一个是角度制和弧度制

正弦 余弦 正切

如图,在Rt△ABC中,∠C = 90°,斜边为c,长的直角边为b,短的直角边为a。

正弦
我们把∠A的对边与斜边的比叫做∠A的正弦(sine),记作sinA,即

sinA = ∠A的对边 / ∠A的斜边 = a / c

余弦
我们把∠A的邻边与斜边的比叫做∠A的余弦(cosine),记作cosA,即

cosA = ∠A的邻边 / ∠A的斜边 = b / c

正切
我们把∠A的对边与邻边的比叫做∠A的正切(tangent),记作tanA,即

tanA = ∠A的对边 / ∠A的邻边 = a / b

对于tanA有一个公式
tanA = sinA / cosA
也就是
a / b = (a / c) / (b / c)
a / b = (a / c) * (c / b)
等号右边上下两个c约掉了
也就只剩下a / b = a / b

角度制和弧度制

每个角度都有一个对应的弧度值
既然已经有角度制了,为什么还要有弧度制呢
因为代码里Math中用的三角函数都是弧度制,代码只认弧度制,不认角度制180°角的弧度值是π,

由此可以得出公式==>

弧度 = 角度 / 180° * π
角度 = 弧度 / π * 180°

也可以写成==>

弧度 = π / 180° * 角度
角度 = 180° / π * 弧度

<!!!文章末尾有完整代码下载链接地址!!!>

1、小球围绕中点旋转环绕:

2、实现虚拟摇杆主要代码逻辑如下:

大致实现思路和逻辑就上面的,具体UI以及代码详细实现等细节逻辑可看具体游戏代码工程

<!!!文章末尾有完整代码下载链接地址!!!>

完整代码目录结构如下:

<!!!文章末尾有完整代码下载链接地址!!!>

详细实现代码工程逻辑请关注微信公众号GFanStudio回复 "虚拟摇杆" 即可获得项目工程下载地址;具体教学视频请关注B站Up主GFanStudio

另外QQ技术交流群交流学习2d/3d技术知识:1038743340

<!!!文章末尾有完整代码下载链接地址!!!>

游戏公司面试题-CocosCreator实现虚拟摇杆控制角色移动&中心旋转自转小球&割草旋转逻辑 完整代码下载地址如下:

虚拟摇杆控制角色移动&中心旋转自转小球&割草旋转逻辑Cocos商店地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1579160.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

老子云、AMRT3D、眸瑞科技

老子云概述 老子云3D可视化快速开发平台&#xff0c;集云压缩、云烘焙、云存储云展示于一体&#xff0c;使3D模型资源自动输出至移动端PC端、Web端&#xff0c;能在多设备、全平台进行展示和交互&#xff0c;是全球领先、自主可控的自动化3D云引擎。 平台架构 平台特性 1、基…

深入了解iOS内存(WWDC 2018)笔记-内存诊断

主要记录下用于分析iOS/macOS 内存问题的笔记。 主要分析命令&#xff1a; vmmap, leaks, malloc_history 一&#xff1a;前言 有 3 种思考方式 你想看到对象的创建吗&#xff1f;你想要查看内存中引用对象或地址的内容吗&#xff1f;或者你只是想看看 一个实例有多大&#…

Utilize webcam to capture photo with camera

1. Official Guide& my github Official course my github 2. Overcome Webcam js Error in Chrome: Could not access webcam link 直接把代码拷贝到本机的下述目录下 To ignore Chrome’s secure origin policy, follow these steps. Navigate to chrome://flags/#un…

nginx 配置访问地址和解决跨域问题(反向代理)

1、配置访问地址&#xff08;通过ip访问&#xff09; //配置ip访问地址 location ^~/auditApp{alias /usr/local/front-apps/cbd/auditApp;index index.html;if (!-e $request_filename) {rewrite ^/(.*) /auditApp/index.html last;break;}} 2、解决跨域问题&…

Unity2023使用sdkmanager命令行工具安装Android SDK

1&#xff0c;下载cmdline-tools&#xff0c;官网地址&#xff1a;https://developer.android.com/studio或者https://dl.google.com/android/repository/文件名 文件名对应版本名。例如文件名为commandlinetools-win-9862592_latest.zip 引用Android cmdline-tools 版本与其…

面向跳转编程JOP问题及挑战

BTI分支目标识别精讲与实践系列 思考 1、什么是代码重用攻击?什么是ROP攻击?区别与联系? 2、什么是JOP攻击?间接分支跳转指令? 3、JOP攻击的缓解技术?控制流完整性保护? 4、BTI下的JOP如何缓解?什么是目标着陆台? 5、BTI的架构细节?硬件原理?间接分支类型?指…

LangChain Agent v0.2.0简明教程 (下)

5. Agent5.1 Tools&#xff08;Function Calling&#xff09;5.2 Agent 6. Memory 5. Agent Agent的核心思想是根据用户输入的prompt&#xff0c;使用LLM来选择要采取的一系列操作(agent调用tools prompt llm tools)。在Chain中&#xff0c;一系列操作被硬编码&#xff08;…

记录一下前端定时器清除失效的问题

目录 一、问题引入 二、错误代码&#xff1a; 三、错误原因 四、修正的代码 附 vue提供的线上运行代码网址以便证实可用性 一、问题引入 按理说&#xff0c;打开定时器 xxx setInterval(()>{ },100)&#xff0c;之后只要 clearInterval(xxx) 就可以顺利关闭定时器…

汇编入门--基础知识(1)

1.汇编语言的概念 汇编语言是一种低级编程语言&#xff0c;它与计算机的机器语言非常接近&#xff0c;但比机器语言更易于人类阅读和理解。汇编语言是用一系列的助记符来表示机器语言的操作码和操作数。每种计算机体系结构&#xff08;如x86、ARM等&#xff09;都有自己的汇编语…

『羊毛教程』免费使用一个月的GPT-4、Claude 3 Opus!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

2024-04-08 NO.5 Quest3 手势追踪进行 UI 交互

文章目录 1 玩家配置2 物体配置3 添加视觉效果4 添加文字5 其他操作5.1 双面渲染5.2 替换图片 ​ 在开始操作前&#xff0c;我们导入先前配置好的预制体 MyOVRCameraRig&#xff0c;相关介绍在 《2024-04-03 NO.4 Quest3 手势追踪抓取物体-CSDN博客》 文章中。 1 玩家配置 &a…

[数据结构]双向带头循环链表制作

前面我们有提到&#xff0c;单向不带头循环链表的制作 这里我们介绍一个双向带头循环链表的制作方法 双向带头循环链表的示意图如下 带头指针的作用体现在哪呢? 第一、防止头节点为空,既有头结点&#xff0c;头指针始终指向头结点&#xff0c;那么无论链表是否为空&#xf…

前端用Scss简化媒体查询

1、演示 2、未优化前的代码 .header {width: 100px;height: 100px;background-color: red; } media (min-width: 320px) and (max-width: 480px) {.header {width: 10px;} } media (min-width: 320px) and (max-width: 480px) {.header {height: 20px;} } media (min-width: 48…

【测试篇】Selenium + Java环境搭建

文章目录 Selenium Java环境搭建配置系统环境变量PATH验证环境是否搭建成功常见问题&解决办法 Selenium Java环境搭建 Java版本最低要求为8&#xff0c;这里默认大家都下载好了Java。&#x1f606; 下载chrome浏览器&#xff08;点我下载&#xff09; 观察chrome版本。…

你知道哪几种当前流行的lisp语言的方言?

估计很多人都看过《黑客与画家》这本书&#xff0c;这本书主要介绍黑客即优秀程序员的爱好和动机&#xff0c;讨论黑客成长、黑客对世界的贡献以及编程语言和黑客工作方法等所有对计算机时代感兴趣的人的一些话题。作者保罗格雷厄姆字里行间不经意间向大家推介Lisp是最好的编程…

python|drop的应用

drop 删除列B 删除索引为1的行 删除列为‘A’&#xff0c;‘C’的列&#xff0c;axis表示方向 删除时保留原始 DataFrame&#xff08;使用 inplaceFalse&#xff09; 删除时直接修改原始 DataFrame&#xff08;使用 inplaceTrue&#xff09;

Unity面经(自整)——Unity基础知识

Unity基础知识 1. Image和RawImage的区别 Image比RawImage更耗性能。Image只能使用sprite属性的图片。而RawImage什么都可以使用 2. Unity3D中的碰撞器Collider和触发器Trigger的区别 碰撞器是触发器的载体&#xff0c;而触发器是碰撞器上的一个属性。 如果IsTrigger为fal…

Map接口及其实现类及常用方法

1.Map接口及其实现类 java.util.Map : 存储一对一对的数据(key-value键值对)|----->HashMap : 主要实现类,线程不安全,效率高,可以添加null的键值对;底层使用数组单向链表红黑树。|------->LinkedHashMap : 是HashMap的子类,在HashMap的数据结构的基础上,添加了一对双向…

222222222222222222222222

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

低温漂、低功耗电压基准,用在精密数据采集系统,供电类设备,工业仪表,测试设备等领域

MSR015/MSR025 是低温漂、低功耗、高精度 CMOS 电压基准&#xff0c; 具有 0.05% 初始精度、低功耗特点。该器件的低输出电压迟滞和低长期输出电压 漂移特性&#xff0c;进一步提高稳定性和系统可靠性。 此外&#xff0c;器件的小尺寸和低运行 电流特性使其非常适合便携…