如何做一个泡泡龙游戏(二)

简介: 嗨!大家好,我是小蚂蚁。今天我们继续学习制作一个泡泡龙游戏。绝大部分的泡泡龙游戏都是关卡制的,你玩过了一关,然后接着再玩下一关。每个关卡其实都是预先设计好的,闯关的过程就是游戏将一个一个设计好的关卡呈现给玩家的过程。这些关卡都是怎样设计的呢?游戏又是怎样将这些设计好的关卡呈现出来的呢?欢迎带着这两个疑问开启今天的阅读之旅。

嗨!大家好,我是小蚂蚁。今天我们继续学习制作一个泡泡龙游戏。


绝大部分的泡泡龙游戏都是关卡制的,你玩过了一关,然后接着再玩下一关。每个关卡其实都是预先设计好的,闯关的过程就是游戏将一个一个设计好的关卡呈现给玩家的过程。这些关卡都是怎样设计的呢?游戏又是怎样将这些设计好的关卡呈现出来的呢?欢迎带着这两个疑问开启今天的阅读之旅。



如图,假设这是泡泡龙游戏的一个关卡,我们来看一下这个关卡里的泡泡,一共包含四种颜色的泡泡,红,绿,橙,蓝。一共是有 6 行,另外,奇数行是 5 列,偶数行是 4 列,这些是我们能从这个图片中获得的信息。


好了,接下来我们就以这个图片为准,把它做到游戏里去。怎么做?把图片截个图放到游戏里?当然不是了。在上一节里我们已经讲过了如何设置泡泡龙游戏的初始布局,在初始布局的基础上,我们要做的就是设置每个泡泡的颜色。


怎么设置颜色呢?告诉电脑这个是红色,那个是蓝色?它好像听不懂。为了能够让计算机听得懂,此时我们就需要做一件事情了,这件事情叫做数据抽象


说白了就是把我们人类的语言翻译成计算机所能够理解的数据。



来看一下这张图,左侧是我们假设的游戏界面,现在将红色球用 1 表示,绿色球用 2 表示,蓝色球用 3 表示,橙色球用 4 表示。然后把数字对应的填写到右侧的表格中。这样就翻译好了,我们把一个色彩丰富的游戏界面翻译成了一个枯燥的数据表格,一个计算机喜欢和擅长处理的东西。


关于数据抽象,之前在消除游戏系列中有专门写过一篇文章,感兴趣的话可以【点击这里】去看看。


以上就是数据抽象的过程,我们把当前所看到的游戏界面转换成了可以用于在游戏中处理的数据。


接下来,我们就把这张数据表格搬到游戏里吧!


在小游戏制作工具中创建一个叫做“关卡数据”的表格,然后将上方的数据填写到表格中。



接着,我们要做的就是根据表格中的数据来设置对应位置上的泡泡的颜色。


这里我为泡泡增加了几个造型,它们与上方图片中的泡泡颜色是一一对应的,造型1是红色,造型2是绿色,造型3是蓝色,造型4是橙色。



接着来看一下泡泡上的积木逻辑的一些改动。



红框圈出来的是在之前的基础上增加的两处改动,我们为泡泡增加了一个“类型索引”的局部变量,在克隆泡泡时,根据关卡数据表格中的指定行列位置的值,设置这个“类型索引”(就是 1,2,3,4 中的一个),最后根据这个类型索引来设置自己的造型。


预览游戏看一下。



对比一下,我们在开始假设的那个游戏场景。



至此,我们就实现了一个从右向左的游戏构建的过程。



最后再来梳理一下这整个过程:我们假设并绘制出了泡泡龙游戏的一个关卡的样子,然后通过数据抽象将其转换成了一个数据表格(计算机能够处理的东西),接着我们把数据表格添加到了游戏中,然后根据表格中的数据设置每一个泡泡,最后构建出了我们假设的那个游戏的样子。



这就是关卡制的游戏从设计关卡到游戏呈现的过程了,对于关卡设计者来讲,完全可以在电子表格中设计出关卡的数据,再进一步,为了关卡设计更方便,完全可以以图形化的方式展现,设计完成后再转换成关卡数据(精致1010精致点点连线中提供给玩家的自定义关卡设计就是这样做的),最后再加入到游戏中,构建出游戏。


今天的内容就到这里了,对于关卡制游戏的设计和呈现过程,现在知道了吧!

我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我的公众号就对啦!

这里是我的游戏开发课程服务,不只是一门课,而是一套围绕着新手学习做游戏有关的一整套服务。致力于帮助更多的人学会做游戏并做出自己的游戏,目前已有 43 名学员,多位同学已经通过学习做出了自己的游戏,如果你是一位想学习做游戏的朋友,欢迎【点击这里】了解详情。

这是我做的几个简单好玩消除小游戏,闲暇之余希望能给你带来片刻的放松和愉悦。

精致1010

一个很精致的消除游戏。

小程序

精致点点连线

忙碌生活中的片刻放松。

小程序

水果方块1010

果汁四溅的经典消除游戏。

小程序

圆点守护者

为守护家园而战。

小程序

也欢迎加个微信,交个朋友,朋友圈每日分享与做游戏有关的知识内容,可以来围观。接受付费咨询,不闲聊,望见谅。

相关文章
|
人工智能 NoSQL 数据可视化
n8n:16万Star超明星项目的架构解读
n8n从单体架构逐步演进为企业级集成平台,具备AI集成能力,适用于自动化场景,成为iPaaS领域的优选方案。
371 0
n8n:16万Star超明星项目的架构解读
|
6月前
|
运维 监控 API
《SaaS应用技术攻坚:从定制化到运维的六大核心实践拆解》
本文结合项目管理SaaS开发实践,拆解六大核心技术实践:迭代时按租户规模分层灰度发布,同步配置并设自动回滚保障稳定;租户隔离采用“逻辑+物理”混合方案,结合数据中台解决跨租户统计难题;基于K8s构建租户级弹性伸缩,按访问特征分组并优化阶梯策略平衡性能成本;以插件化架构处理定制需求,通过标准接口与扩展表实现标准化与个性化平衡;从索引、SQL、分库分表三维度优化数据库性能;构建租户级运维监控体系,聚焦业务、系统、数据指标实现精准告警与快速排查。
330 3
|
10月前
|
人工智能 安全 Android开发
从“备胎”到领航者,鸿蒙操作系统的传奇进化
019年,在全球科技产业的风云变幻中,华为正式推出了鸿蒙操作系统(HarmonyOS),这一消息如同一颗重磅炸弹,瞬间吸引了全世界的目光。
636 1
|
机器学习/深度学习 人工智能 自然语言处理
GraphRAG入门指南:构建你的第一个知识图谱驱动应用
【10月更文挑战第28天】随着人工智能和机器学习技术的飞速发展,知识图谱(Knowledge Graph)逐渐成为连接数据和智能应用的重要桥梁。GraphRAG(Graph-based Retrieval-Augmented Generation)是一种结合了知识图谱和自然语言处理的技术,能够在生成文本时利用知识图谱中的结构化信息,从而提高生成质量和相关性。作为一名数据科学家和技术爱好者,我有幸深入研究并实践了GraphRAG技术,现将我的经验和心得整理成这份入门指南,希望能帮助初学者快速上手并构建自己的知识图谱驱动应用。
2246 2
|
人工智能 安全 API
本地部署马斯克开源Grok-1大模型,贝锐花生壳3步实现远程访问
在人工智能领域,除了在线工具如ChatGPT和Midjourney,本地部署的AI工具如Stable Diffusion同样重要,尤其在满足定制需求和确保数据安全方面。以马斯克的xAI开源项目Grok-1为例,这款拥有314B参数的大模型需要高性能硬件支持。借助贝锐花生壳的内网穿透技术,用户可通过简单的三步操作实现对这类AI工具的远程访问:安装并登录花生壳客户端、设置内网穿透映射、生成并使用远程访问地址。花生壳提供的HTTPS映射确保了访问的安全性,使远程使用AI工具变得更加便捷和安全。
826 22
|
XML Android开发 数据格式
Android 中如何设置activity的启动动画,让它像dialog一样从底部往上出来
在 Android 中实现 Activity 的对话框式过渡动画:从底部滑入与从顶部滑出。需定义两个 XML 动画文件 `activity_slide_in.xml` 和 `activity_slide_out.xml`,分别控制 Activity 的进入与退出动画。使用 `overridePendingTransition` 方法在启动 (`startActivity`) 或结束 (`finish`) Activity 时应用这些动画。为了使前 Activity 保持静止,可定义 `no_animation.xml` 并在启动新 Activity 时仅设置新 Activity 的进入动画。
924 12
|
SQL 运维 监控
Nest.js 实战 (十):使用 winston 打印和收集日志记录
这篇文章介绍了在Nest服务中如何使用Winston记录日志。文章首先强调了日志记录在后台服务中的重要性,接着提到Nest默认的内部日志记录器,并指出可以通过@nestjs/common包中的Logger类来全面控制日志系统的行为。文章还提到,为了在生产环境中实现更高级的日志功能,可以使用如Winston之类的Node.js日志包。接下来,文章介绍了如何在Nest服务中使用Winston记录日志,包括安装相关依赖、创建winston配置文件以及实现简单的日志记录示例。最后,文章指出更高级的自定义日志功能需要读者自己去探索。
844 0
Nest.js 实战 (十):使用 winston 打印和收集日志记录
|
缓存 前端开发 JavaScript
如何优化淘宝直播 PC 推流端性能(上)
如何优化淘宝直播 PC 推流端性能(上)
912 2
Manacher(马拉车)算法详解
该文章详细解释了Manacher算法,这是一种高效找出给定字符串最长回文子串的算法,通过在字符串中插入特殊字符构建新的字符串,并利用中心扩展策略来找出最长回文序列,时间复杂度为O(N),空间复杂度为O(N)。
|
开发者
Qt中的事件该如何学习?(附带案例)
事件是Qt中比较重要的一部分,在初期如果理解不当学习可能会比较困难,这里提一嘴当初教我的那位老师水平是真的高,让我很轻易的就理解了事件的概念。 在平时我们见到那些界面上的某些快捷键就有可能是事件做的,例如ESC关闭窗口,Enter提交或者登录这种类似的,这也是事件的强大之处。
733 1