当前位置:网站首页>如何在游戏中制作一个血条
如何在游戏中制作一个血条
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)。如果你希望血条的过渡快一点儿,可以通过调整“循环次数”和“除数”达到目的。
再次运行一下,看看效果。
可以看到下方的带过渡效果的血条看起来会更友好一些。如果你是一个“细节控”的话,一定也会对这两种不同的表现形式有不同的感受吧!
最后,送上一句我很喜欢的话:要相信你在制作游戏中的所有的用心,玩家都会感受的到。共勉之。
我是会做游戏也会教你做游戏的小蚂蚁,欢迎关注微信公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料,每天学点儿游戏开发知识。
边栏推荐
- Leetcode skimming ---1
- Leetcode刷题---1
- Data classification: support vector machine
- Binary search method
- Leetcode刷题---977
- Matrix calculation of Neural Network Introduction (pytoch)
- Tensorflow - tensorflow Foundation
- An open source OA office automation system
- Tensorflow—Neural Style Transfer
- Unity group engineering practice project "the strongest takeaway" planning case & error correction document
猜你喜欢
安装yolov3(Anaconda)
GAOFAN Weibo app
Detailed cross validation and grid search -- sklearn implementation
七、MySQL之数据定义语言(二)
Drop out (pytoch)
Mysql5.7 installation and configuration tutorial (Graphic ultra detailed version)
6、 Data definition language of MySQL (1)
Handwritten digit recognition: CNN alexnet
Jetson TX2 brush machine
The story of a 30-year-old tester struggling, even lying flat is extravagant
随机推荐
Ind yff first week
MySQL报错“Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre”解决方法
Classification (data consolidation and grouping aggregation)
Convolutional neural network (CNN) learning notes (own understanding + own code) - deep learning
Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported
Timo background management system
I really want to be a girl. The first step of programming is to wear women's clothes
八、MySQL之事务控制语言
Jetson TX2 刷机
Ut2013 learning notes
[combinatorial mathematics] pigeon's nest principle (simple form of pigeon's nest principle | simple form examples of pigeon's nest principle 1, 2, 3)
Flink -- 内置函数(ALL)
Leetcode刷题---367
Pytoch has been installed, but vs code still displays no module named 'torch‘
Out of the box high color background system
Leetcode skimming ---832
Leetcode skimming ---278
Ut2014 learning notes
Free online markdown to write a good resume
【吐槽&脑洞】关于逛B站时偶然体验的弹幕互动游戏魏蜀吴三国争霸游戏的一些思考