Ruby2D总结

简介: Ruby2D总结

Ruby学习心得


学了几天,Ruby2D这个项目我差不多把教程里面的东西做完了,感觉还好,只要每天一有空的话就去做的话就可以快速做好一个项目,不过还是会有一点虚浮感,但学习也是一个不能拖的事情,所以为了平衡速度与效率,我接下来将开始写这个小游戏的总结来巩固自己的知识


大体总结

Ruby2D我认为主要分为一下几个部分:

1、地图的绘制,Tilemap等工具的应用,以及2Dcamera下角色的显示,图层的遮盖关系问题。

2、Ruby的动作,enemy的运动设置,发射飞弹、碰撞检测等等行为逻辑的运动,以及是否贴合现实世界,不会显出一种诡异感

3、动画的控制,这里的Ruby的运动轨迹没有采用骨骼动画来处理,而是对于每个动作都画了四帧图片,通过动画混合树监听行动方向来处理Ruby的动作变化

4、UI血条的处理、camera跟随以及UI血条的制作,再加上音效的控制


1、地图绘制与图层遮罩关系


这里我们主要使用的是Tilemap来绘制地图

7587000ca4d04009b55a8e8c5a9834aa.png


创建好后点开可以直接拿里面的图片开画,还有RuleTile等一系列功能我认为其实没有太大必要,这种只能瓦片对初学者很不友好,而且我认为这是美工该干的活,主程我们只要会切割瓦片就行了

将sprite mode改成从single(单一的)改成Multiple(多个的)然后sprite Editor->slice(切割)把上面两个参数改成3



7e6bf1915d694a9889310a1d7d04ce41.png

像这样

这样就可以了,我们切割好图片只要打开Tilemap就可以随心所欲编辑了

至于图层的遮罩问题

我们需要设置一个东西

Transprency sort Axis设置为(0,1,0)

排序顺序按Y轴排序,这是一个优先级的关系

官方描述是:描述方向的轴,将沿此方向测量对象距离,从而进行排序。

我认为这就是告诉你按Y轴排序就完事了,假如是X轴就把X设为1,假如要混合的话就1,2,3,灵活随机应变调参数就行。

这里我们调整一下锚点和渲染器就行


2、Ruby的动作,发射飞弹,enemy的代码描写


这里是比较多也是比较重要的地方,逻辑上也容易搞混,所以这里代码的工整与规范需要注意

这里我已经写了三篇博客了,我就不多说了,确实有点多,写总结是巩固记忆不是给自己添堵我就贴个链接好了

https://blog.csdn.net/qq_63499305/article/details/130081269?spm=1001.2014.3001.5501//这里是飞弹

https://blog.csdn.net/qq_63499305/article/details/130052354//这里是enemy控制

https://blog.csdn.net/qq_63499305/article/details/129958273//这里是Ruby控制

不过有几个点值得记录

一是里面用到的几个api

还是很好用的

GetComponent<>();//获取组件,基础中的基础

Input.GetAxis(“horizontal/vertical”);//一般用来获取水平或垂直输入

Input.GetKeyDown(KeyCode.C);//获取键盘输入,这里的C可以替换成键盘上的其他按键

component.SetActive(true);相当于开关,是否让这个组件处于开启或关闭状态

rigidbody2d.velocity;//获取刚体的速度

Vector2.magnitude;//获取向量长度

Vector2.MoveTowards(vel, Vector2.zero, faccel * dt);第一个参数是当前向量,第二个是目标值,第三个参数是每一次靠近的长度,还是很好用的,上面这个是我程序上copy下来的,算是示例

Animator.SetFloat(“MoveX”,1);//这里控制动画,float可以改成trigger之类的数据类型注意格式

currentHealth = Mathf.Clamp(currentHealth + amount, 0, maxHealth);这个是将一个值限制在一个范围内,好用

    GameObject projectileObject = Instantiate(projectilePrefab, rb2d.position + Vector2.up *
    0.5f, Quaternion.identity);


创建一个游戏对象,projectilePrefab需要先创建一个gameobject变量再挂载在我们的游戏对象上

audioSource.PlayOneShot(clip);//播放音乐

Destroy(gameObject);//删除自己

rigidbody2d.simulated = false;//将该刚体从物理系统中删除(可恢复)

mask.rectTransform.SetSizeWithCurrentAnchors(RectTransform.Axis.Horizontal, mask.rectTransform.rect.width * value);//设置mask遮罩长度

就这么多了


3、动画控制

这里我发的博客也挺详细了

https://blog.csdn.net/qq_63499305/article/details/130052354?spm=1001.2014.3001.5502

再过多赘述显得啰嗦


4、camera跟随以及UI血条处理


血条我也有发博客,不得不说实时记录还是爽啊,到这种总结的时候省了好多活

https://blog.csdn.net/qq_63499305/article/details/130116201?spm=1001.2014.3001.5502

不过我试了一下,在不同分辨率下,我们的摄像机高度似乎是不一样的,这会导致我们在有些分辨率下UI血条显示不出来的问题,原因是Canvas画布大小的变化问题

经过查找,我找到了解决方案


ec94c0cb317b4342a36f57e8db632278.png


UIScaleMode:UI尺寸变化方法

withScreen:随着屏幕变化而变化

这样设置就行了

注意点差不多就这样了


5、最后(小感悟)

听天命地前一句是尽人事,尽人事以后才应该听天命,首先把握好自己能做到地界限在哪里吧。






相关文章
|
XML Java 数据库连接
MyBatis深入探索:原生API与注解方式实现CRUD操作
MyBatis深入探索:原生API与注解方式实现CRUD操作
277 0
|
8月前
|
存储 人工智能 自然语言处理
用Spring AI搭建本地RAG系统:让AI成为你的私人文档助手
想让AI帮你读懂PDF文档吗?本文教你用Spring AI和Ollama搭建一个本地RAG系统,让AI成为你的私人文档助手。无需GPU,无需云端API,只需几行代码,你的文档就能开口说话了!
1720 2
|
存储 NoSQL Redis
Docker 部署 Redis
在使用 Docker 部署 Redis 时,为实现数据持久化,需正确挂载容器内的数据目录到宿主机。推荐命令如下: ``` docker run -d --name redis -v /mnt/data/redis:/data -p 6379:6379 redis ``` 该命令将宿主机的 `/mnt/data/redis` 目录挂载到容器的 `/data` 目录,确保 Redis 数据持久化。此路径更通用,适合大多数场景。避免使用不匹配的挂载路径,如 `/var/lib/redis` 或 `/mnt/data/redis` 到非默认目录,以防止数据无法正确持久化。
|
存储 关系型数据库 MySQL
MySQL数据库碎片化:隐患与解决策略
UUID作为主键可能导致MySQL存储碎片,影响性能。频繁的DML操作、字段长度变化和非顺序插入(如UUID)都会造成碎片。碎片增加磁盘I/O,降低查询效率,浪费空间,影响备份速度。建议使用自增ID,固定长度字段,并适时运行OPTIMIZE TABLE来减少碎片。
|
12月前
|
SQL 分布式计算 数据处理
【重磅发布】AllData数据中台核心功能:湖仓平台中心
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
|
存储 数据采集 人工智能
面向AGI时代的数据存储、管理与应用
本次分享由阿里云智能集团解决方案架构师王太平主讲,主题为面向AGI时代的数据存储、管理与应用。内容涵盖AGI的演进、人工智能发展的关键因素、开发框架对存储基础设施的挑战、数据预处理、大数据训练、微调、推理及落地过程。重点讨论了阿里云在数据存储和管理方面的设计与实践,包括高性能存储、成本优化和数据安全检测等功能,旨在应对AI时代的复杂需求。
352 15
|
人工智能 自然语言处理 IDE
通义灵码让AI帮你实现自动化编程
通义灵码是由阿里云与通义实验室联合开发的智能编码辅助工具,具备行级/函数级实时续写、自然语言生成代码、单元测试生成、代码优化、注释生成、代码解释、研发智能问答及异常报错排查等功能。该工具支持200多种编程语言,兼容主流IDE,如Visual Studio Code、Visual Studio和JetBrains IDEs。通义灵码在Gartner发布的AI代码助手魔力象限中表现出色,成为唯一进入挑战者象限的中国科技公司。目前,通义灵码下载量已超过470万,每日辅助生成代码超3000万次,被开发者广泛采用。
1196 1
|
存储 IDE 开发工具
编写Python参考手册速查软件(一)
编写Python参考手册速查软件(一)
199 1
|
机器学习/深度学习 网络协议 安全
安全DNS服务
【8月更文挑战第18天】
2185 16
|
存储 算法 Python
Python图论实战:从零基础到精通DFS与BFS遍历,轻松玩转复杂网络结构
【7月更文挑战第11天】图论在数据科学中扮演关键角色,用于解决复杂网络问题。Python因其易用性和库支持成为实现图算法的首选。本文通过问答形式介绍DFS和BFS,图是节点和边的数据结构,遍历用于搜索和分析。Python中图可表示为邻接表,DFS用递归遍历,BFS借助队列。DFS适用于深度探索,BFS则用于最短路径。提供的代码示例帮助理解如何在Python中应用这两种遍历算法。开始探索图论,解锁更多技术可能!
408 6

热门文章

最新文章