- 消除游戏系列教程大合集
嗨!大家好,我是小蚂蚁。 今天给大家带来一份消除游戏系列教程大合集,谦虚的讲这应该是全网你能找到的最好的消除游戏系列教程(反正我是没找到更好的)。这年头儿,像小蚂蚁这样的,虽然没几个人看但还在孜孜不倦的写教程的人已经不多了,所以大家且看且珍惜,一定要记得收藏,虽然收藏了你也不会看,但是至少有个心理安慰。如果对你有用的话,不要忘了点赞分享一下,也算是对我的鼓励了。 消除游戏一直是我偏好的游戏类型,一方面是我自己比较喜欢玩,现在基本上没有大段的游戏时间,一般都是在闲暇的碎片时间里,打开我的精致1010游戏,然后无脑消除几下,全当是放松了。另一方面是休闲消除游戏的受众群体很大,基本上包括了所有人。 消除游戏是一类相对难做的游戏,因为里面涉及到很多的数学计算,但是绝对没有能够超出初中数学知识的。写这类教程很耗费时间和精力,你得先做出来,然后再整理好思路写出来,为了方便理解其中的原理和算法,最好是再画出来,用图片配合文字来进行讲解。 决定写消除游戏系列教程绝对是我为自己挖下的一个最大的坑,不过好在这个坑也填的七七八八了。终于可以用一个大合集来把它们都汇总起来了。 不论怎样,我觉得这一篇一篇的教程还是有价值的,因为它们必定会帮助到一部分人,哪怕是一小部分。闲着没事儿还是要学习游戏开发知识,还是要自己动手做的。否则话,你就只有看别人做的游戏,玩别人做的游戏的份儿。 不要做一个只有想法的家伙,学起来,做起来才是正解。 废话说完了,下面来看一下这个消除游戏系列教程大合集吧! 通用知识和原理这里的一些知识和原理都是消除游戏里通用的,都是一些万金油式的方法,搞懂了之后,哪里都能用的上。 所有消除游戏背后都有一张看不见的网格 所有消除游戏背后那些看不见的数字 点击一个消除游戏图标时,背后都发生了什么 三消游戏查找算法的原理和实现 斜向三消查找算法的原理和实现 点消游戏查找算法的原理和实现 连线消除游戏的原理和实现 消除游戏中图标下落的原理和实现 1010游戏系列教程从零开始制作一个 1010 游戏。 微信小游戏开发实战系列开启 让计算机理解你的想法 使用表格处理数据 绘制网格 实现图形的拖拽 重复执行和逻辑循环的区别 把图形放置在网格上 图形的数据验证 消除处理 刷新形状 检查形状 使用本地缓存 广告的开通和接入 随机生成形状功能的实现 闯关模式的实现 关卡编辑器的制作以及关卡分享功能的实现 如何进行小游戏的优化 泡泡龙游戏系列教程从零开始制作一个泡泡龙游戏。 如何制作一个泡泡龙游戏(一) 如何制作一个泡泡龙游戏(二) 如何制作一个泡泡龙游戏(三) 如何制作一个泡泡龙游戏(四) 如何制作一个泡泡龙游戏(五) 如何制作一个泡泡龙游戏(六) 泡泡龙游戏的完整制作流程和模版 俄罗斯方块游戏系列教程从零开始制作一个俄罗斯方块游戏。 从零开始制作一个俄罗斯方块游戏1:流程 从零开始制作一个俄罗斯方块游戏2:创建形状 从零开始制作一个俄罗斯方块游戏3:形状控制 从零开始制作一个俄罗斯方块游戏4:形状碰撞检测(上) 从零开始制作一个俄罗斯方块游戏5:形状碰撞检测(下) 从零开始制作一个俄罗斯方块游戏6:形状停靠 从零开始制作一个俄罗斯方块游戏7:消除判断和处理 从零开始制作一个俄罗斯方块游戏8:下落处理 俄罗斯方块游戏的两种记分规则 羊了个羊游戏系列教程从零开始制作一个羊了个羊游戏。 堆叠牌的拾取 随机生成卡牌 卡牌的放置和消除 三种道具的实现 制作更多层 实现快速拾取 希望以上的这些原创教程能够对你有所帮助,只要学的话是肯定会有帮助的哟! 以上所有的系列教程都有对应的游戏模版,你可以选择购买模版然后对照着教程更好的学习,【点击这里】了解小蚂蚁的 12 个游戏模版。
2023-05-04 - 玩家点击一个图标的背后都发生了些什么
嗨!大家好,我是小蚂蚁,这是消除游戏系列教程的第 3 篇。 在之前的两篇文章中,我们首先打开了自己的“创作者之眼”,看到了消除游戏背后那张看不见的网格,想象一下你所玩过的消除游戏,是不是其中的每一个图标都遵循着网格布局在排布?接着我们继续做了进一步的修炼,将“创作者之眼”继续升级,除了那张网格,我们也看到了一些数字,这些数字就是每一个图标的标识。 今天,我们继续修炼一些基本功。是的,在正式开始制作具体类型的消除游戏之前,我们需要把基本功练扎实。这样在你真正制作游戏的时候,才能够知其所以然。 在网格的那一节中,我们讲了一些基础的数学知识,再次回顾一下这张图片。 [图片] 根据网格的中点,行列数以及边长,我们首先计算出了左下角的起点位置。有了起点位置,就可以根据当前的行号和列号计算出每个格子的位置。 依靠着这些简单的数学知识,我们描绘出了一个网格,并且让每一个元素出现在该出现的位置。这是一个消除游戏的基础,有了这样的基础布局,才能够进行下一步的操作。 在消除游戏中,通常你需要先选中某一个图标,然后再进行后续的操作。对于玩家来讲,只需要用手指点住想要选择的那个图标即可,但是对于游戏制作者来讲,我们就需要做一些处理来确保玩家点住的就是他想点的那个图标。 两个坐标系 想要了解其中的原理,需要先了解两个不同的坐标系。 屏幕坐标系[图片] 如图,中间的蓝色网格区域是消除游戏的操作区域,外围的绿色边框表示的屏幕区域,可以理解为你的手机屏幕,在屏幕区域中存在着一个坐标系,即屏幕坐标系,以屏幕的左下角为原点,假设当前的设备屏幕是 400 x 800 的尺寸,那么屏幕坐标系就如图中红色箭头标注的一样,屏幕的最右侧为 400,屏幕的最上侧为 800。 不同的游戏引擎中屏幕坐标系的原点是不一样的,有的以左下方为原点,向右向上为正方向;有的以左上方为圆点,向右向下为正方向;还有的以屏幕中心为原点;不论原点在哪里,道理其实都一样,无非是计算会稍有差异。本文以左下方为原点举例,在不同的游戏引擎中实现时需要根据具体情况做出相应的调整。 网格坐标系[图片] 网格坐标系指的是针对于整个消除布局网格的坐标系,它以整个消除网格中左下角的第一个元素位置为原点,如图中紫色箭头标注的坐标系。还记得我们是如何计算出左下角第一个元素的位置的吗?忘记了的话,请回顾上方带有计算公式的图片或者回顾之前的文章。 很显然对于网格坐标系来讲,它的原点位置并不是(0,0),没有硬性的规定,坐标系的原点必须是(0,0),这一点需要清楚。 坐标系的转换 请注意,接下来我们又要涉及一点儿数学知识了,不用担心,并不难理解。 [图片] 如图,网格布局左下角起点(绿色圆点)的位置我们之前已经算出来了,是(x0,y0),现在假设玩家点击了红色点的位置 (x1,y1),这个点的位置是可以知道的(不同的游戏开发工具都有提供获取屏幕点击位置的功能),这个点的位置其实是针对于屏幕坐标系的位置。 现在我们有了这样两个已知条件: 当前点击的屏幕坐标的位置(x1,y1)网格坐标系左下角起点的位置(x0,y0)根据当前的已知条件,可以计算出当前点击位置在网格坐标系中的位置,也就是图中橙色线所标注的(x2,y2)。 x2 = x1 - x0y2 = y1 - y0到这里为止其实我们完成了这样的一件事:将当前点击位置的坐标由屏幕坐标系转换到了网格坐标系。 为什么要去做这样的坐标转换呢?因为只有在网格坐标系中,我们才能够将位置坐标转换成对应的“行号”和“列号”,进而找到玩家到底点击的是哪个图标。 行列号的计算 接着再加入一个已知的条件,即元素的边长 n,我们就可以通过下方的计算得到当前元素在网格中的行号和列号了。 行号 = (y1 - y0)/n + 1列号 = (x1 - x0)/n + 1是不是又迷糊了?我们看看下图中举出的例子,然后再对照着看这个公式。 [图片] 如图,现在我们假设左下角起点的位置为(50,200),然后玩家当前所点击的屏幕的位置为(100,250),当前每个元素的边长是50。将这些已知的数值带入计算行号和列号的公式: 行号 = (250-200)/50 + 1 = 2列号 = (100-50)/50 + 1 = 2由此可知,当前点击的是第 2 行第 2 列的图标。根据这个例子,再回顾一个上方的计算行列号的公式,很不是就比较容易理解了呢! 容错处理 这里举的一些数值例子很方便计算,因为主要目的是帮助理解计算公式。但是在真实的游戏中,不可能总是恰到好处的得到能够整除的数字,但是很明显行列号最后又都必须是整数,此时该如何处理呢? [图片] 如图,任何一个红点的位置都是玩家可能点击的位置,有些红点的位置甚至都没有位于图标之上,对于玩家来讲这些点击应该都是有效的,因为我就是想要点第 2 行第 2 列的那个图标,我的手指可能不是很精准,但是我不管,我点的就是那个,如果图标没有被选中,不是我的问题,一定是游戏出了问题。 作为游戏创作者的我们又需要做一些事情了,来容许玩家的操作有一定的误差,我们要尽可能的保证玩家当前点击的位置就是他想要选择的图标。听起来是不是有些玄妙?怎样才能确保一定的容错率呢?怎样才能确定玩家想要选的到底是哪个图标呢? 答案就是利用“四舍五入”。又是一个在你知道真相之前感觉无比玄妙的东西,在捅破了一层窗户纸之后变得不过如此的例子。 我们利用四舍五入把计算行列数的公式改造一下,就变成了这样: 行号 = 四舍五入((y1 - y0)/n + 1)列号 = 四舍五入((x1 - x0)/n + 1) [图片] 这里又举出了一些位置坐标,拿出计算器带入上方的计算公式,算算吧!看看是不是通过“四舍五入”之后,得到的行列号都是 2 。 是不是没想到你学过的四舍五入在游戏中竟然可以有这样的应用?竟然能够用于改善玩家的操作体验,增加游戏的操作容错率。 通过这样一个小小的改善,我们的游戏就能更具“人性化”一点,仿佛在告诉玩家:不论你的眼神儿好不好,手指点击的精不精准,都没关系,你尽管点,我知道你想点的是哪里。 元素的标识 到此为止,我们已经能够通过玩家点击屏幕的位置,经过一系列的计算,知道玩家当前要点击的元素的“行号”和“列号”了,通过行列号就能够在布局网格中找到那个对应的元素。我们可以把这个行列号叫做“元素的标识”。 标识有什么作用呢?当你有很多的元素时,如果想要在其中进行精确查找的话,最好的方式就是为每一个元素分配一个唯一的标识(就像是我们的身份证号),当想要找到某一个元素时,只需要知道它的标识,就能够把它精确的找出来。 [图片] 如图,我们使用行号和列号作为元素的标识时,其实就是这个样子,每一个元素都有一个唯一的[行,列]号,我们也可以通过这个[行,列]号找到那个确定的元素。 使用行列号作为标识同时需要两个数字(行号和列号),通常我们还会使用另一种方式,通过行列号计算出一个“数字索引”来作为标识,这样使用一个数字就可以标识出一个元素了。 [图片] 数字索引的计算公式是这样的: 索引 = (行号-1) * 总列数 + 列号 假设有 3 行 3 列元素,当前元素位于第 2 行第 1 列,那么:索引 = (2-1) * 3 + 1 = 4反过来根据这个数字索引,我们也能够倒推出行列号: 行号 = 向上取整(索引/总列数)列号 = 索引 - (行号-1) * 总列数 假设有 3 行 3 列元素,当前元素的数字索引是 8 ,那么:行号 = 向上取整(8/3) = 3列号 = 8 - (3-1) * 3 = 2得到它位于第 3 行第 2 列的位置。有了上方的这两个行列号和数字索引的互推公式,其实我们就可以做这样的一件事,就是把二维的数组或者表格转换成一维的数组或者列表。 [图片] 只要愿意的话,你完全可以使用一个一维的数组或列表实现一个消除游戏,因为它其实就是一个“压扁”了的表格。当然你没有必要这么做,除非你所使用的游戏开发工具或者编程语言对于二维数组或者表格缺乏支持。否则,你应该优先选用更直观的表格或者二维数组。举这个例子是想说明,即使是在一个处处受限的开发条件下,你仍然能够找到其他的解决方案,只要善于利用已有的资源,学会变通,其实有很多的选择。 今天的内容就到这里了,觉得不错的话,请 点赞 鼓励我一下吧!你的鼓励对我来说价值巨大。 -- 这是我制作的【精致系列】的两个消除小游戏,欢迎来试玩。 [图片] 想学习做游戏?欢迎关注小蚂蚁公众号【小蚂蚁教你做游戏】呀! [图片] 也欢迎加小蚂蚁微信(XMY-XiaoMaYi),交个朋友。 [图片]
2022-01-14 - 小蚂蚁的游戏开发课程服务
嗨!大家好,我是小蚂蚁。一个会做游戏也会教你做游戏的家伙,我有着 8 年的游戏开发经验,对游戏开发非常的了解。相信有很多已关注的朋友对小蚂蚁已经很了解了,如果你还不了解,感兴趣的话可以看看我的这篇【自我介绍】。 目前我除了自己在制作游戏外,也正在致力于帮助更多想要做游戏的朋友,通过学习做出自己的游戏。这也是今天要介绍的主角:小蚂蚁的游戏开发课程服务。 为什么叫课程服务 我把它叫做课程服务,这不仅仅是一门课程,而是围绕着与学习做游戏有关的一整套服务。我发现对于很多想要学习做游戏的人来讲,他们缺少的并不是一门课程。如今互联网如此的发达,不论你想要学什么,几乎总是可以找到免费的教程可以学习。 但是,对于大部分人来讲,即使看了再多的课程,甚至也买了很多的课程,仍旧学不会做游戏,甚至连哪怕一个最简单的游戏也做不出来。所以,想学会做游戏仅仅一门课程是不够的,除了课程之外还需要与之配套的服务才行。 能解决哪些问题 下面这些是你在学习做游戏时,会遇到的一些痛点问题。 想学习入门可门槛太高。当前大部分的新手教程其实都不是面向新手的,因为大部分的教程都要求学习者具备一定的编程基础,至少是要学习掌握一门编程语言的基础知识。光这一点基本上 90% 以上的人就被拦下了,因为学习编程语言这个门槛对于普通人来讲太高了。对于很多学习做游戏的人,因为这个太高的门槛,就只能待在门外了。 小蚂蚁的游戏开发课是专门面向新手小白的,也就是说你不需要先去掌握一门编程语言,也不需要有过任何的游戏开发经验,它将学习做游戏的门槛降的很低很低,让任何一个想要学习做游戏的人,都能够通过学习这个课程,自己动手做出一个小游戏。 学习过程中遇到问题时没有人能够帮助你答疑解惑。对于一个新领域的学习者来讲,这可能是最大的一个痛点了。尤其是一些免费的教程,当你遇到问题时,几乎是不太可能得到准确清晰的答复,更不可能得到即时的答复了。当问题连续积累起来得不到解决时,基本上你的学习也就终止了。 一年内不限次数的 1v1 咨询服务就是为了解决这个问题的,在你学习过程中遇到任何的疑惑或者问题,都可以即时的得到准确而清晰的答复,甚至是与游戏行业有关的任何问题,都能够从小蚂蚁这里得到专业的解答。 没有学习氛围,自己学很难坚持下去。不论你去过哪个图书馆,都会发现里面坐满了很多学习的人,这些人不是为了去图书馆读书,而是找个地方学习。为什么这么多人非要跑到图书馆里去学习呢?因为这里有学习的氛围。当你处在一个大家都在学习的氛围中,你也更容易参与进去。 对于很多学习做游戏的人来讲,学一段时间就学不下去了,因为觉得孤独,仿佛只有自己在干这件事儿,这就是缺少氛围。学员社群就是为了解决这个问题,我们有一个学习氛围非常好的学员社群,在这里所有的人都在干着同一件事儿,就是学习做游戏。在这里学习做游戏是一件大家都在做的事儿,你不会觉得孤独,彼此的交流,鼓励和分享,也会让你更容易坚持下去。 入门之后不知道下一步该怎么办。好不容易通过学习入了游戏开发世界的大门,却不知道下一步该怎么走了。这也是很多新手在入门之后面对的一个最大的问题,如果找不到一个明确的目标和方向的话,你就很难继续前进。 此时,有着 8 年游戏开发经验的小蚂蚁就又能够帮助你了,我对游戏开发行业的方方面面都有着充分的了解,可以根据你的具体情况为你指明前进的方向,帮助你制定合理的目标。 另外,包含各种类型游戏的游戏模版库也可以帮助到你,你可以从中选择一个游戏模版,进行学习或者在此基础上进行改编。想要不断提升自己做游戏的技能,没有比不停的做出一款又一款的游戏更好的方式了。 课程内容 这是我自己制作的,专门针对于新手开发者的一门系统全面的游戏课程。以一个游戏制作的全过程,带你学习游戏开发的必要知识和技能。在学完这个课程后,你将能够动手做出自己的第一个游戏,顺利的入门游戏开发的世界。 这可能是你能在全网找到的最好的游戏开发入门课程了,对此我还是挺有信心的。 以下是课程的内容。 [图片] 根据学员的学习情况,课程还在进行不停的打磨和优化。 服务内容 以下是围绕着课程有关的一系列的服务。 知识卡片库 [图片] 知识卡片库起源于学员的提问,每当有学员提问时,我都会将问题和解决方案整理成一个图片发到学员群里,随着问题和解决方案积累的越来越多,就形成了一个仓库,后起名叫做“知识卡片库”,可以帮助你快速的解决遇到的问题。 整理成这样的一个仓库后,搭配上搜索功能,使用起来非常的方便。每当有学员遇到问题时,都会先搜索一下“知识卡片库”,因为里面可能已经有该问题的解决方案了。 [图片] 游戏素材库 [图片] 针对于学员不知道该去哪里找游戏素材的问题,我创建了这样的一个游戏素材库,长期收集开源可商用的游戏素材,供所有学员使用。 知识拓展库[图片] 这个知识拓展库会持续的更新一些与游戏开发相关的知识,长期的为学员提供知识拓展。 游戏模版库[图片] 目前共包含 10 个游戏模版,以及 4 个小蚂蚁的游戏项目,另外 1 年之内新增的所有游戏模版和项目均可免费获取。 有越来越多的想要学习做游戏的学员,通过学习做出了自己的游戏。这是一件让我觉得非常的高兴和有成就感的事情,也让我更加坚定了要把这件事情长期做下去,帮助越来越多的想要做游戏的人能够做出一款自己的游戏。 如今,听到有学员做出游戏的消息,比我自己做出游戏感觉更开心。 [图片] 我们的学员上线的游戏已经越来越多了,欢迎点击【学员作品分享】,来体验一下小蚂蚁开发课程学员们的游戏作品。 可能有很多的小伙伴们对做游戏能不能赚钱这件事情感兴趣,实话实说,做游戏能赚钱而且并不难,为此我还专门写了一篇文章在【这里】。 做小游戏更像是细水长流,可能短时间内看起来不多,但是长时间的积累后,或许还挺可观的。 [图片] [图片] [图片] [图片] 做游戏是件一次性投入然后会有持久产出的事情,在把游戏做完上线后,基本上就不需要再投入了,但是游戏能给你带来的回报却是持久的。以精致1010为例,我用了大概一个月时间的投入,以现在累计的收入来看,这一个月的投入带来的回报是不是还挺可观的呢,另外这个游戏以后还会继续带来盈利。这是不是很像是“细水长流”。 希望越来越多的学员能够做出自己的游戏上线盈利,把学费都赚回来。我相信当越来越多细细的水流汇聚到一起时,将会带来量变,而这个量变是什么,我们可以共同期待。 好了,话就说到这里了。该到重点了,一门可能是最好的游戏开发入门课程外加一年时间的一系列配套服务。售价多少呢?399元。你可以看一下其他的与游戏开发有关的课程或者培训,以及其提供的内容和服务,就能知道这个价格有多真诚了。小蚂蚁是自己在做这件事,而且会长期坚定的做下去,所以没有任何的套路,目前已经有 37 名学员加入了,如果你想要学习做游戏的话,闭着眼买就行了,绝对是超值的。 [图片] 欢迎识别下方的卡片,前往小商店了解小蚂蚁的游戏开发课。 [图片] --- 另外也可以关注一下我的公众号,里面有很多的学习做游戏的免费原创教程。 [图片] 买不买课没关系,都可以加个微信(xiaomayi6669),先交个朋友。 [图片]
2022-03-23