从零开始做个泡泡龙(7):先移动还是先计算

文摘   教育   2024-08-06 16:08   山东  
嗨!大家好,我是小蚂蚁。

今天我们分享一下游戏中物体运动时会遇到的一个问题,这也是我在制作泡泡龙游戏时所遇到的一个问题,即到底是应该先移动后计算,还是应该先计算后移动。


如图,游戏中的物体移动是一帧一帧的,即每一帧移动一定的距离,游戏通常在 1 秒钟内会执行 60 帧,所以每帧的时间是非常短的,因为人眼会有视觉停留,所以我们看到的游戏中的物体是在连续的移动,这个就是游戏中物体移动的基本原理。图中的蓝色的球在竖直的向上移动,每一帧移动 40 的距离。

接下来我们来看一下问题:假设球在 0 的位置上向上移动,每帧移动距离为 40,现在想要让球在 100 的位置停下来,该怎么处理?


如图,球从 0 的位置开始移动,第一帧移动到 40 ,第二帧移动到 80,第三帧移动到 120,现在想要让球在 100 的位置停下来,有两种方案。

第一种让球先移动,在每一帧移动完成后做个判断,如果位置超过了 100,那就让球退回到 100。

第二种先计算球将要到达的位置,如果这个位置超过了 100,那就将位置设置到 100,然后再让球开始移动。

两种方案对应的过程其实是这样的。


为了更直观的演示,我们直接做一个示例来看一下。

布置一个简单的场景,红球表示先运动后计算,蓝球表示先计算后运动,上方有一条目标线,游戏开始后,两个小球向上移动,到达目标线停止。


先看一下红球的积木逻辑。


接着再看一下蓝球的积木逻辑。


这里为了便于观察两个球在到达目标位置时的移动过程,我使用了“等待1秒”积木,这样可以看到小球最后一帧的调整过程,预览一下场景,看看结果。


红球越过目标位置,然后向后调整。蓝球会在目标位置前调整,然后再达到目标位置。

在泡泡龙游戏中原来使用的是先移动后计算的方式,这样带来了一个问题,就是发射的泡泡到达停靠位置时,总是有一个“先跑过后拉回”的过程,不发现还好,在发现了之后,你总是会特别关注这一过程,越看越明显,而且还为此多了一种担心,万一跑过了拉不回来了怎么办?

为了解决这种不适感,我决定对发射泡泡的移动过程进行改造,改用先计算后移动的方式。改完过后终于舒适了,再也不用担心发射的泡泡跑过头了,因为在正式移动开始之前,我们已经知道了要达到的位置。


这个其实也叫计算过程前置,可以让我们有机会在移动真正开始之前,先对要达到的位置进行判断和处理,在确定好目标位置没有问题了之后,再前进。
其实所有的抽奖类型的程序,在你点击开始抽奖按钮的那一刻,结果就已经计算出来了。后续不论是何种类型的抽奖都是对于既定结果的演示而已,这就叫计算前置,所以当你下次盯着抽奖转盘的时候,心态就会平和很多。大多数时候并不是差一点点就中奖了,而是有人想让你认为差一点点就中奖了。
关于发射泡泡的移动处理大家可以参考【第三节】教程,当然那篇教程里使用的移动方式是“先移动后计算”,看了今天的文章后,不妨思考或者尝试一下,把之前的移动方式改成“先计算后移动”。

我做了一个泡泡龙游戏的模版,微信扫描下方小程序码(或长按识可以直接体验。


你可以选择购买一个模版,结合着系列教程更好的学习。微信扫描下方图中二维码(或长按识别)可以前往我的微信小商店购买模版,购买后备注“泡泡龙模版”即可



想学做游戏?欢迎加入我的年度游戏开发课程,面向零基础新手。用一年的时间,从零开始做出自己的游戏。欢迎你的加入,来跟一百多位同学一起学习。【点击这里】可了解年度课程详情。


欢迎加入【小游戏运营推广践行群】(点击这里了解详情),学习小游戏推广运营,成为少数的可以以一己之力做出游戏赚到钱的人。目前 80+ 小伙伴已加入,欢迎来和我们一起践行,探索小游戏推广的更多可能(注:学员加星球享半价优惠)。


这里是我制作的部分小游戏《俄罗斯拼图方块》《彩虹星球大冒险》《经典俄罗斯方块》《疯狂泡泡龙》大家可自行点击搜索体验。


推荐学习专栏:


从零开始制作一个经典1010游戏


从零开始制作一个连连看游戏


欢迎加个微信,交个朋友,朋友圈每日分享与做游戏有关的知识和内容,可以来围观。备注“学习做游戏”可免费领取原创的游戏开发教程资料大合集!非学员只接受付费咨询,不闲聊,望见谅。

长按识别关注

交个朋友!

·end·
—欢迎大家点赞,再看,分享—
—你的鼓励对我来说价值巨大—

小蚂蚁教你做游戏
跟小蚂蚁学习游戏制作开发和设计,学习游戏编程,这里有很多原创的游戏开发制作教程和独家课程,帮助你快速入门,使用无代码可视化的游戏制作软件,制作属于自己的游戏。
 最新文章