基于MVC的俄罗斯方块笔记
1、使用开发比例为7:10
- 按照移动端的开发标准进行,素材的导入等
2、MVC的三层结构 model 跟view 不进行交互
- Model 模型层 —— 数据存放层
- View 视图层——视图控制
- Ctrl 逻辑层——桥梁作用 链接Model和VIew
- 通过标签来进行Ctrl对model和view的访问
3、菜单的设置,布局通过Horizontal Layout Group来进行平均分布
4、通过有限状态机来控制游戏
-
菜单状态
-
游戏状态
-
暂停状态
-
游戏结束状态
27、控制图形方块的左右移动
- 暂停状态不能移动 如果左右有方块挡住也不能移动
- 移动的时候通过判断左右按键的按下来控制,让其按每个格子来移动
- 如果能移动则更新位置并播放音效,不能移动则返回原来的位置
/// <summary>
/// 控制左右移动
/// </summary>
private void InputControl()
{
float h = 0;
if (Input.GetKeyDown(KeyCode.LeftArrow))
{
h = -1;
}
else if (Input.GetKeyDown(KeyCode.RightArrow))
{
h = 1;
}
if (h != 0) //如果按下
{
Vector3 pos = transform.position; //得到当前位置
pos.x += h;
transform.position = pos;//重新赋值
//判断是否能移动
if (ctrl.model.IsValidMapPosition(this.transform) == false)
{
pos.x -= h; // 如果不能移动则返回刚才的位置
transform.position = pos;return; //设置回来之前的位置
}
ctrl.audioManager.PlayControl(); //可以移动的话就播放音效
}
}
28、控制方块的消除
- 判断消除条件 每行满了之后消除 用消除方法来实现
- 消除后需要所以的方块向下移动
/// <summary>
/// 检测地图是否不要消除行
/// </summary>
private void CheckMap()
{
for (int i = 0; i < MAX_ROWS; i++)
{