泡泡龙游戏开发实战教程(7):先移动还是先计算

简介: 泡泡龙游戏开发实战教程(7):先移动还是先计算

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

这个其实也叫计算过程前置,可以让我们有机会在移动真正开始之前,先对要达到的位置进行判断和处理,在确定好目标位置没有问题了之后,再前进。

其实所有的抽奖类型的程序,在你点击开始抽奖按钮的那一刻,结果就已经计算出来了。后续不论是何种类型的抽奖都是对于既定结果的演示而已,这就叫计算前置,所以当你下次盯着抽奖转盘的时候,心态就会平和很多。大多数时候并不是差一点点就中奖了,而是有人想让你认为差一点点就中奖了。

关于发射泡泡的移动处理大家可以参考【第三节】教程,当然那篇教程里使用的移动方式是“先移动后计算”,看了今天的文章后,不妨思考或者尝试一下,把之前的移动方式改成“先计算后移动”。

相关文章
|
6月前
|
移动开发 HTML5
经典的泡泡龙游戏源码免费下载
HTML5泡泡龙冒险小游戏是一款休闲网页游戏,游戏玩法是玩家从下方中央的弹珠发射台射出彩珠,多于3个同色珠相连则会消失。
45 2
经典的泡泡龙游戏源码免费下载
|
7月前
|
图形学
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
【Unity 3D】3D游戏跑酷小子实战教学(附源码和步骤 超详细)
307 0
|
7月前
|
开发者
泡泡龙游戏开发实战教程(8):完整流程
泡泡龙游戏开发实战教程(8):完整流程
121 0
|
7月前
泡泡龙游戏开发实战教程(1):泡泡龙游戏的布局
泡泡龙游戏开发实战教程(1):泡泡龙游戏的布局
92 0
|
7月前
|
索引
塔防游戏开发实战教程(2):创建不同类型的炮塔
塔防游戏开发实战教程(2):创建不同类型的炮塔
62 0
|
7月前
|
索引
泡泡龙游戏开发实战教程(2):如何设置关卡
泡泡龙游戏开发实战教程(2):如何设置关卡
109 0
|
7月前
|
算法
连连看游戏系列教程开篇
连连看游戏系列教程开篇
106 0
|
开发工具
游戏开发实战教程(16):如何对微信小游戏进行优化
优化这件事儿我以前很少会在意,因为一直做手机游戏,手机硬件的更新速度非常的快,更快的计算能力,更强的渲染能力,更大的内存。这就导致了如果你不是做一个大型游戏的话,几乎是不太用考虑优化的。 直到我开始做微信小游戏,作为一个小游戏是有诸多的限制的,计算能力,渲染能力,尤其是对游戏大小的限制(不能超过4M),这些限制让我不得不重新的转变一些之前做游戏的想法。
175 0
|
存储
游戏开发实战教程(13):闯关模式的实现
之所以制作这样的一个模式,起初的想法是这样的:原来的游戏模式一局的时间比较长,以我自己为例,进行一次游戏的时间至少要在 10 分钟以上,如果认真仔细一点儿,想玩到几千分的话,那么可能需要半个小时以上。很明显这样的单次游戏时长对于一个小游戏来讲有些太长了,但是游戏模式已经是这样了,如果想要缩短单次游戏之间,在现有的模式下只能通过增加游戏难度这种方式,但这并不是一种好的方式。
135 0
游戏开发实战教程系列
做一个不会过时的游戏。这个游戏的玩法很经典,经过市场的验证,如同俄罗斯方块一样不会过时。 做一个做完后不需要再去长期维护的游戏。做完了就是做完了,不需要再继续投入时间精力维护。 做一个精致的游戏。让人打开它后能够感受到这是一个精致的作品,会让人感觉到舒服。
105 0
下一篇
DataWorks