如何在游戏中实现一个好看的金币效果

简介: 如何在游戏中实现一个好看的金币效果

嗨!大家好,我是小蚂蚁。

如图,是我上线的游戏【彩虹星球大冒险】中的金币拾取效果,打金币作为这个游戏中的一个非常重要的体验,把金币拾取效果做的好看就显得尤为重要。今天就跟大家分享一个,如何实现一个这样好看的金币拾取效果。

观察一下上面的动图,金币从出现到消失总共是分为两个过程的。

  • 金币从爆炸的物体中向上弹出,并进行旋转下落
  • 玩家碰到金币后,金币放大旋转然后飞到屏幕的左上角记录金币的位置后消失

接下来我们以一个具体的实例,来逐步的实现整个金币效果。

如图,我们实现一个这样的示例:从屏幕中的大金币处不停的生成小金币,角色碰到小金币后,会拾取金币,被拾取的金币飞到屏幕的左上角消失,最后将金币数字增加 1 。

首先,我们来布置一下示例的场景。

可以看到这里面有 4 种不同的金币角色,这里我们重点需要关注的是“掉落金币”和“飞行金币”。

掉落金币

先来看“掉落金币”,掉落金币负责完成第一阶段的任务,即金币在某个位置上创建出来之后,要有一个先向上飞,再向下落的抛物线的轨迹(想象一下我们向上抛一个东西),要实现这种移动,需要借助工具提供的“物理行为”。

我们为“掉落金币”增加一个物理行为,将“能否倾倒”的选项关闭,因为在金币下落的过程中,我们希望它能够一直保持直立的状态。

接着,来看一下“掉落金币”的积木逻辑。

掉落金币被克隆出来之后,给它向上施加一个随机的角度(70~110),随机的力(1~2),以此来实现一种随机向上抛出的效果。接下来金币下落的过程,其实就完全交由“物理行为”来控制了。

至于金币是如何旋转的呢?用一个带有旋转动画的金币造型,然后使用动画播放积木进行循环播放即可。

飞行金币

再来看“飞行金币”,飞行金币负责完成第二阶段的任务,即从拾取的位置放大弹出来并进行翻转,然后飞到屏幕左上角记录金币的位置。为了实现更好的金币翻转和飞行效果,我们可以借助“翻转”和“缓动动画”这两个行为。

接着,来看一下飞行金币上的积木逻辑。

逻辑并不复杂,这里重点是通过一些细节的处理,来让整个金币拾取的过程看上去更自然,更美观。例如,使用翻转来表明金币被吃到了,翻转过后增加一小段向左上方的旋转移动过程,相当于让吃到的金币多显示一会儿,而不是吃到后就直接飞走了。为了让吃金币的效果更明显,我们增加了“飞行金币”的大小,并且调整了飞行金币的旋转,这样可以让金币的翻转变得更自然。


通过以上的两步,我们就能实现了一个更好看的金币效果了。整体实现上并不复杂,但是有一些细节需要我们重点处理。

毕竟在游戏中拾取金币对于玩家来讲是很爽的,让这种体验再好一点儿是我们游戏开发者的责任。一个效果最终呈现的如何,能够给玩家带来怎样的体验,需要的不止是开发技术,还需要更多的用心思考,以及对于细节不停雕琢和打磨的耐心。

知识也学到了,来支持一下我的最新游戏呗!

相关文章
|
7月前
|
前端开发 图形学
unity UGUI跟随3D物体的坐标转换
在 Unity 中实现 UGUI 元素跟随 3D 物体,关键是将 3D 物体的世界坐标转换为屏幕或画布坐标。通过 Camera.WorldToScreenPoint 方法,可将 3D 物体位置映射到屏幕上,再更新 UGUI 元素的位置。代码示例展示了如何使用该方法,使 UGUI 图像跟随 3D 模型,并提供文字显示、图像和线条的显示/隐藏功能。
|
9月前
|
监控 Java Android开发
深入探索Android系统的内存管理机制
本文旨在全面解析Android系统的内存管理机制,包括其工作原理、常见问题及其解决方案。通过对Android内存模型的深入分析,本文将帮助开发者更好地理解内存分配、回收以及优化策略,从而提高应用性能和用户体验。
|
10月前
|
程序员
中国程序员的挑战与困境:行业现状深度解析
在中国,程序员作为技术行业的中坚力量,他们面临的挑战和困境值得关注。这些挑战不仅影响着程序员的个人发展,也关系到整个技术行业的进步。本文将探讨中国程序员面临的一些主要问题,并分析这些问题背后的原因,同时探讨可能的解决方案。
253 1
|
Docker 容器
解决docker启动logstash失败的问题(可能原因)
解决docker启动logstash失败的问题(可能原因)
481 0
|
11月前
|
存储 自然语言处理 编译器
Python 源文件编译之后会得到什么,它的结构是怎样的?和字节码又有什么联系?
Python 源文件编译之后会得到什么,它的结构是怎样的?和字节码又有什么联系?
219 0
|
JSON 搜索推荐 API
深入了解亚马逊商品详情API:功能、作用与实例
亚马逊商品详情API接口由官方提供,允许开发者通过程序调用获取商品详细信息,如标题、价格等,适用于电商数据分析、搜索及个性化推荐等场景。接口名称包括ItemLookup、GetMatchingProductForId等,支持HTTP POST/GET请求,需提供商品ID、API密钥及其他可选参数。返回数据格式通常为JSON或XML,涵盖商品详情、分类、品牌、价格、图片URL及用户评价等。该接口对数据收集、实时推荐、营销活动及数据分析至关重要,有助于提升电商平台的数据处理能力、用户体验及商家运营效率。使用时需注册亚马逊开发者账号并申请API访问权限,获取API密钥后按文档构建请求并处理响应数据。
|
缓存
uniapp清理app缓存
uniapp清理app缓存
266 0
|
JavaScript 前端开发 测试技术
【利用AI让知识体系化】TypeScript目标:扩展JavaScript能力(三)
【利用AI让知识体系化】TypeScript目标:扩展JavaScript能力
|
图形学 Windows
Unity报错之 No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager
Unity2019操作对图集进行操作编辑出错:No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager.
1475 0
Unity报错之 No Sprite Editor Window registered. Please download 2D Sprite package from Package Manager
|
JavaScript 前端开发 数据挖掘
node + ts 读取csv文件为二维数组
node + ts 读取csv文件为二维数组
197 0