当前位置:网站首页>如何在游戏中制作一个血条
如何在游戏中制作一个血条
2022-07-03 09:33:00 【51CTO】
嗨!大家好,我是小蚂蚁。欢迎关注我的微信公众号【小蚂蚁教你做游戏】,学习更多游戏开发原创教程。
今天分享一下如何使用微信小游戏制作工具中的“遮罩”快速的实现一个血条效果。
首先我们在场景中添加一些所需要的素材。

如图,添加了两个血条的图片,一个当作背景,一个当作前景,并且把这两个图片放到了一个“血条1”容器中,另外增加了一个“打你丫的”按钮,用来模拟打击,点击“打你丫的”按钮,血条就会掉血。
接下来,我们选中血条,点击“管理行为”按钮。在打开的“管理行为”面板中开启“遮罩”行为。

这样在血条的属性面板中就会增加遮罩行为。

对于实现一个血条来说 ,我们只需要关注 3 个属性即可,类型使用“矩形”,血条通常都是矩形的长条形状,然后是宽度和高度,这里的宽度和高度要跟血条图片的宽度和高度相等,对于横向的血条来说,我们只需要设置其宽度即可。
了解与“遮罩”相关的其他属性,可以查看官方文档:https://gamemaker.weixin.qq.com/doc/minigame/behaviors/mask.html

可以看到血条图片的宽度和高度也是 480 x 40。
血条实现的原理是我们通过设置矩形遮罩的宽度来控制血条的显示,假设遮罩宽度设置为 240 ,那么血条只会显示出一半。


如上图,当遮罩宽度设置为 240 时,运行时的血条显示了一半。
实现原理明白了,接着我们就来实现一下血条掉血的效果吧!其实我们只需要知道“总血量”,”当前血量“以及”血条的宽度“就可以动态的计算出遮罩的宽度了。
计算公式:遮罩宽度 = 当前血量/总血量 * 血条的宽度
首先创建 2 个变量,一个记录总血量,一个记录当前血量。

接着选中“血条”,为其增加如下的积木。

*注:与遮罩有关的所有积木块都在右侧的“行为”中,这里我们只需要用到“设置遮罩的宽度”一块积木即可。
最后,我们在“打你丫的”按钮上增加如下的逻辑。

最后,运行一下。

点击“打你丫的”按钮后,血条就会掉血了。
可以看到这里的血条掉血效果很“硬”,缺少过渡,下面我们尝试着为其增加一个过渡,让其看上去更柔和一点儿。
我们重新创建一个“血条2”来实现带过渡的血条效果。

首先在“过渡血条”上创建两个局部变量。

“宽度”变量用于记录之前的遮罩宽度,“新宽度”用于记录新计算的遮罩宽度。

这里使用循环来实现血条的过渡效果,假设当前的宽度是 100,新的宽度是 90,那么血条将会使用 10 帧来完成过渡效果,每 1 帧宽度就会减少 1 ((100-90)/10=1)。如果你希望血条的过渡快一点儿,可以通过调整“循环次数”和“除数”达到目的。
再次运行一下,看看效果。

可以看到下方的带过渡效果的血条看起来会更友好一些。如果你是一个“细节控”的话,一定也会对这两种不同的表现形式有不同的感受吧!
最后,送上一句我很喜欢的话:要相信你在制作游戏中的所有的用心,玩家都会感受的到。共勉之。
我是会做游戏也会教你做游戏的小蚂蚁,欢迎关注微信公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料,每天学点儿游戏开发知识。

边栏推荐
- 神经网络入门之模型选择(PyTorch)
- 六、MySQL之数据定义语言(一)
- How to hide cvxpy warnings: warn: a- > P (column pointers) not strictly increasing, column x empty?
- 丢弃法Dropout(Pytorch)
- Data preprocessing - Data Mining 1
- 小文件专项
- Ut2015 learning notes
- [roast & brain hole] Some Thoughts on the bullet screen interactive game of Wei Shu Wu Three Kingdoms when visiting station B
- Leetcode刷题---704
- Multilayer perceptron (pytorch)
猜你喜欢

Unity学习笔记:个人学习项目《疯狂天才埃德加》纠错文档

Simple real-time gesture recognition based on OpenCV (including code)

Ut2016 learning notes

神经网络入门之预备知识(PyTorch)

High imitation bosom friend manke comic app

八、MySQL之事务控制语言

Softmax regression (pytorch)

Jetson TX2 刷机

Multilayer perceptron (pytorch)

Preliminary knowledge of Neural Network Introduction (pytorch)
随机推荐
深度学习入门之自动求导(Pytorch)
Leetcode刷题---35
Handwritten digit recognition: CNN alexnet
[untitled] numpy learning
MySQL reports an error "expression 1 of select list is not in group by claim and contains nonaggre" solution
Redis 笔记 01:入门篇
Matrix calculation of Neural Network Introduction (pytoch)
C#项目-寝室管理系统(1)
Timo background management system
Drop out (pytoch)
Training effects of different data sets (yolov5)
FileNotFoundError: Could not find module ‘... dll‘ (or one of its dependencies).
Unity learning notes: personal learning project "crazy genius Edgar" error correction document
Jupiter notebook changing font style and font size
Leetcode刷题---75
Leetcode刷题---10
Knowledge map enhancement recommendation based on joint non sampling learning
Leetcode skimming ---283
Detailed cross validation and grid search -- sklearn implementation
Ind kwf first week