Gameplay常用编写方法(持续更新)


三消游戏
在这里插入图片描述

编写步骤
1.将块当作SpriteRenderer,使用Row\Column来实例化一个范围
2.制作多款子消除单位,将单位实例化到当前的模板单位下
3.添加collision,添加点击事件,交换需要交换的块,更新到View
4.约束交换限制,只能交换差值1以内的块
5.检测3消块,检测水平方向以及竖直方向,添加到list
6.有消除的话将上面的块往下移动,以消除的块的行列为准
7.添加新的块,以消除的为准往下移动,再次检测消除
8.功能完善,添加Tween效果和音效


Thinking
1.如果是一个二维数组,千万别傻乎乎使用一个真实的二维数据,效率不高特难维护
ArrayList add ArrayList就是一个动态的二维数据,非常好用
2.对于有规则的功能,最好找一下规则,找到效率异常高,程序非常稳,这才是算法
在判断交换条件是否是附近方块的时候
3.如果一个功能,可以由单个功能发散出去,最好一次性打包
在消除的判断过程中,3消除可以检测到4消以及5消
4.对于比较有规则的功能,跟着走规则就好,别用什么对象
5.功能要细分,思路要清晰

视图和逻辑看情况要分开处理,逻辑不一定等于视图
在这里插入图片描述
其实Row对应的Y,Column对应的X,视图的坐标相反


Flappy Bird

在这里插入图片描述
本来是一个挺简单的游戏,在我编写的时候发现和原作者做的手感差远了;不是太简单的线性移动就是移动不好受到控制,
我一直在找一种曲线调节到原作者使用的效果,但非常难,尝试了很多种变化曲线,效果都不好
固定曲线查看网站
后来,在YouTube上看到有人使用了重力模拟来编写这个游戏
Make your own Flappy Bird in 10 minutes (Unity Tutorial)
效果非常滴好,手感特别适合人类的行为习惯,并且异常的丝滑,很多的时候重力和力的模拟效果最好,因为本来就是拟真的数据;

在什么情况要使用重力来拟真
1.有空中单位的游戏,打飞机这类游戏,还有爆炸类的,强技能类型
2.如果做品质游戏,大部分游戏都可以加入重力拟真

Thinking
1.对于一些特定的卷轴游戏,可以让背景是静态的,让角色和障碍物移动,效果更好
2.对于应用到重力或力的地方,尽量使用力或重力来拟真,效果更好
3.Unity中自定义Curve可以使用curve.Evaluate(time)来处理


相关资源

Download The TileSet
Download The Flappy Bird font



版权声明:本文为inspironx原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。