效果预览

 

  获取代码

私信或留言。

 

  游戏介绍

● Github上的代码,不能进行合并操作,修改以后,功能类似2048,空白块赏随机位置,生成2,可以往左、右、上、下滑动,数字会朝着指定方向运动,相邻元素如果相同,则合并。

游戏代码参考:https://github.com/potato47/1024

 

  工程结构介绍

● 游戏分3个场景,game、sleep、success,sleep是不玩显示的,success是成功显示的,game是游戏核心场景,玩游戏都在此场景进行。

 

● 游戏中的数字块都在TileLayer节点上,游戏核心逻辑Map挂在到Map节点上。

 

● 每个数字块,通过对预制初始化,放置在界面上,预制Tile负责数字块的显示,挂在有Tile脚本组件。

 

  算法介绍

● 游戏的核心算法在Map脚本上,通过滑动结束点和起始点,判断滑动的方向,可以向左、右、上、下滑动,滑动后执行相应的逻辑onLeftSlide、onRightSlide、onUpSlide、onDownSlide,根据方向进行合并操作,相邻的元素,如果是相同的则合并,如果是空的,则向滑动方向移动。

● 核心的算法mergeArray,对传入的数组往右移动,然后相同的合并。

● 如四格的数字分别是[2,0,0,2],往右滑动以后,就会变成[0,0,2,2],最右边的相同,就执行合并操作,最终变成[0,0,0,4]。

● 又如[2,0,2,2],第一步移动后变成[0,2,2,2],从最后侧开始合并,合并第一步变成[0,2,0,4],再移动变成[0,0,2,4]。

● 类似上述操作,无论是向上、下、左、右滑动,只需要改变传入的数组元素的顺序即可。

版权声明:本文为caizj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/caizj/p/11736296.html