游戏开发实战教程(9):刷新形状

简介: 这一节我们实现了游戏中形状的刷新,增加了一个新的“形状槽”的概念,即用于安放形状的插槽。其中我们大量的使用到了通知,通知是游戏开发中不同物体间进行的通信的最常用的方式,如果你对通知理解的还不是很好,可以去回顾一下之前的文章。

在1010游戏中下方每次会出现3个不同的“形状”,当玩家把3个“形状”都拖拽到网格中后,就会生成3个新的形状,如此的循环往复。这一节我们将实现这种不停生成形状的功能。


开始前我们需要先明确两个词语的含义。


#形状

如图,就是形状,它会位于游戏的下方,包含很多不同类型的图形,到目前为止我们一直都是使用的第一个“田字”形状作为事例,在第6节中已经讲过具体形状的实现方式,其他的形状你可以作为练习自行实现。此后,当你看到“形状”的字眼后,应该知道我指的的是下方的这些图形。


#形状槽

放置这些形状地方,就像上图中的红色的正方形线框就是“形状槽”,它们的作用在于告诉每个形状创建时应该位于哪里,想象一个就像一个一个的插槽,每个插槽都会安放一个形状。


下面,让我们动手一步一步的实现这个功能。

如图,在游戏中新增了几个资源。“形状管理”,我们会将所有与形状生成有关的逻辑放在这上面,它和“网格数据管理”一样,不会出现在游戏场景中,只是默默的在背后为我们提供服务。为了便于区分,我将它设置为了橙色。形状槽-1~3表示3个“形状槽”,它们的作用只有一个,告诉形状应该在哪里生成。


接着,增加几个新的全局变量和通知。

“全局-形状数据”,用于判断当前剩余的形状数量,当形状数据变为0时,就意味着我们需要创建新的“形状”了。


我们增加了7个新的通知,其中“生成形状”和“设置形状”都用于形状的创建,“形状数量发生变化”用于在放置形状后通知“形状管理”形状的数量有变化。


下面看一下“形状管理”的逻辑,选择“形状管理”,为其增加如下的逻辑积木。

游戏启动后,默认的生成3个“形状”,然后每当“形状数量发生变化”后就检查一下当前剩余的形状数量,如果当前没有形状了,就再创建3个新的“形状”。


接着看一下“容器-1”中的逻辑,选择“容器-1”,首先为其增加一个“是否配置形状槽”的局部变量(具体作用下方会做详细解释)。


然后,为其增加如下的积木逻辑。

如图,我们为“容器-1”新增了3个接收到“设置形状”通知的逻辑块,主要作用就是在形状被创建后,将形状放置到对应的形状槽中。

这里有一个需要注意的点,我们增加了一个“是否配置形状槽”的局部变量来标识当前的形状是否已经放置在形状槽内,因为“容器-1”会接收到“设置形状1”“设置形状2”“设置形状3”的3个通知。如果不加标识的话,这3个块的逻辑会被依次执行,那么最后结果就是所有的“形状”都会被放置在“形状槽-3”中。为了避免这种情况,所以增加了这个局部变量作为标识,对于已经放置好了的形状,就不应该再进行设置形状处理了。(你可以试着去掉该条件,运行后看看结果如何)

最后,在放置形状块中,新增了几个积木块。

在形状被放置在网格上后,将全局记录的形状数量减少1,然后给“形状管理”发送一个“形状数量发生变化的”的通知,最后删除当前的形状。


预览一下,看看最终的效果。

如图,当3个形状都放置到网格上后,就会重新的生成3个新的形状,如此循环往复。


总结一下


这一节我们实现了游戏中形状的刷新,增加了一个新的“形状槽”的概念,即用于安放形状的插槽。其中我们大量的使用到了通知,通知是游戏开发中不同物体间进行的通信的最常用的方式,如果你对通知理解的还不是很好,可以去回顾一下之前的文章。



相关文章
|
5月前
|
前端开发 图形学 开发者
【独家揭秘】那些让你的游戏瞬间鲜活起来的Unity UI动画技巧:从零开始打造动态按钮,提升玩家交互体验的绝招大公开!
【9月更文挑战第1天】在游戏开发领域,Unity 是最受欢迎的游戏引擎之一,其强大的跨平台发布能力和丰富的功能集让开发者能够迅速打造出高质量的游戏。优秀的 UI 设计对于游戏至关重要,尤其是在手游市场,出色的 UI 能给玩家留下深刻的第一印象。Unity 的 UGUI 系统提供了一整套解决方案,包括 Canvas、Image 和 Button 等组件,支持添加各种动画效果。
305 3
|
6月前
|
图形学 数据可视化 开发者
超实用Unity Shader Graph教程:从零开始打造令人惊叹的游戏视觉特效,让你的作品瞬间高大上,附带示例代码与详细步骤解析!
【8月更文挑战第31天】Unity Shader Graph 是 Unity 引擎中的强大工具,通过可视化编程帮助开发者轻松创建复杂且炫酷的视觉效果。本文将指导你使用 Shader Graph 实现三种效果:彩虹色渐变着色器、动态光效和水波纹效果。首先确保安装最新版 Unity 并启用 Shader Graph。创建新材质和着色器图谱后,利用节点库中的预定义节点,在编辑区连接节点定义着色器行为。
445 0
|
9月前
俄罗斯方块游戏开发实战教程(3):玩家如何控制形状
俄罗斯方块游戏开发实战教程(3):玩家如何控制形状
116 1
|
9月前
|
算法 索引 容器
俄罗斯方块游戏开发实战教程(2):随机创建不同的形状
俄罗斯方块游戏开发实战教程(2):随机创建不同的形状
138 0
|
9月前
游戏开发实战教程(15):形状放置预提示
游戏开发实战教程(15):形状放置预提示
78 0
|
容器
微信小游戏开发实战10-检查形状
本篇主要内容:1010游戏中的形状检查以及游戏结束的判断。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
116 0
微信小游戏开发实战10-检查形状
|
存储 算法 Serverless
游戏开发实战教程(12):随机生成形状功能的实现
在游戏的下方存在 3 个形状槽,每个形状槽中都会随机的产生一种形状。我们可以通过设置不同类型的形状的生成概率来调整游戏的难度,例如 1,8 两种类型的形状出现的概率高的话,游戏的难度就会增大。反之,难度就会减小。 下面,我们就来实现一下如何根据设定的概率随机的生成形状。
133 0
|
容器
游戏开发实战教程(10):检查形状
在“1010”游戏中,当网格中再也没有位置安放剩余的形状时,游戏就会结束。为了能够判断当前的形状是否还能够放置到网格中,我们就需要对当前的形状进行检查。 这一节,我们就来实现一下形状的检查以及游戏结束的判定。
101 0
|
数据管理 容器
微信小游戏开发实战9-刷新形状
本篇主要内容是为1010游戏中的刷新形状功能的实现。 如果你没有任何的游戏开发经验,欢迎阅读我的“人人都能做游戏”系列教程,它会手把手的教你做出自己的第一个小游戏。
90 0
|
监控 容器
游戏开发实战教程(4):实现图形的拖拽
游戏中,当按下图形时,我们希望图形能够放大并高亮显示,来提示玩家当前选中了这个图形。当放开图形时,图形应该缩小为原来的大小,并且取消高亮。试着实现一个这个功能。
109 0