分享一波虚幻4制作俄罗斯方块
链接:4.18项目文件
提取码:v8vc
链接:APK
提取码:hqsn
也可以到我上传的文件处下载;
概述
蓝图之间进行交互和打包成apk的基本流程,以及一些思路
- 蓝图中的结构体实现二维数组
蓝图中(我认为)不能直接创建二维或者多维数组,可以通过结构体能实现
- 蓝图中数据表格记录并使用静态数据
俄罗斯方块可移动的方块形状是确定的,所以不需要动态创建或设置,用表格可以很好表示
- 蓝图中Timer的使用
计时器在绝大多数游戏里都存在,重要性不言而喻
- 蓝图中宏的运用
很多人刚开始学的时候都使用不到,后面工程复杂了或者无法用函数满足的时候,宏就派上用场了,实际上虚幻4里的节点,很多都是工程师封装好了的,简化用户的工作的,比如这个foreachloop,打开后一团乱麻,没关系,你只需要知道这些节点有什么用就行了
思路
有两种思路。
第一种如果以坐标为主,碰撞检测为辅,那么游戏制作的过程非常简单,我没有用这种方式。。。
第二种方式以矩阵为主,整张地图是一个矩阵,0表示空,1表示移动方块,2表示固定方块
一个14*24的二维数组A表示地图,用4*4的二维数组B存储方块的形状
处理矩阵就是程序核心,没有物理层面的移动,看起来的移动只不过是数字的改变。
运行时将B映射到A上,就能显示方块,改变数字的位置,就相当于移动方块,改变数值就能固定方块、消除方块
后续可以通过改变两个矩阵的大小,设置地图大小,增加方块类型、功能,有一定扩展性
输赢胜负是常见的游戏结果,这款游戏并没有赢家,只有游戏结束、重头再来。
游戏模式或者说游戏的目的我们可以后面再讨论,
上面已经说明了方块的基本功能,显示、储存,接下来我们来看看游戏过程中的细节或者说是事件。怎么让方块限制在一定范围内?方块如何消去?还有堆叠,固定等等事件,下图便是部分核心操作
后面把游戏系统的各个部分按顺序拆分成10篇文章,每一篇都有一个阶段性效果图,
为了避免照着做也弄不出效果图的情况发生,最好先下载源项目跑一道,碰到问题自己先去比较一下。