CSharp进阶实践项目--俄罗斯方块
1.需求分析
2.复用贪吃蛇开始等场景切换的代码
(自己写一遍,不难!!!)
入口:
更新接口:
Game 类:
BeginOrEndBaseScene 类:
BeginScene 类:
EndScene 类:
GameScene类:
3.绘制对象基类和类型枚举
IDraw 接口:
Position 结构体:
DrawObject 类:
4.地图相关
Map 类:
5.方块信息类
BlockInfo 类:
6.搬砖工人类
BlockWorker 类:
GameScene 中调用:
7.方块变形
在搬砖工人类中添加方法
BlockWorker 类中:
并且创建了一个左右变形枚举:
在 DrawObject 类中添加--擦除方法:
Map 中加了 地图高--h:
GameScene 中调用修改:
8.方块左右移动
在搬砖工人类继续添加方法
BlockWorker 中:
GameScene 中调用:
9.方块自动向下移动
在搬砖工人类中添加方块向下移动的各个方法
BlockWorker 中:
GameScene 中调用:
10.输入线程
在GameScene 中更改线程相关:
11.消除整行方块
在Map 类中添加方法:
12.结束流程
先设置了方块出生位置
在 BlockWorker 中:(设置了位置)
在 DrawObject 中设置屏幕外不绘制和清除
在 Map 中设置顶格结束:
1.在 GameScene 中设置关闭线程相关
2.Map 中:
以上俄罗斯方块的全部功能都以实现!!!
13.拓展--优化线程(输入模块)
单例模式 + 委托 (好好学,好好看)
其实可以单独做为一个工具类,在其他小游戏中也可以经常使用。
在GameScene 中用上 输入模块
视频展示:
C#进阶实践项目(俄罗斯方块)
全部代码:
资源里
总结
要作为一个金典的案例来经常实践,学习老师的编程思想,各功能的分配和处理,理清逻辑关系。里面包含了C#进阶的重点知识,多消化吸收啊!!!
重点:要将每个小方块单独的储存起来,给每个小方块赋予类型和坐标,多线程的处理上要多借鉴吸收,理解 搬砖工人类(BlockWorker)的巧妙之处,递归的妙用之处,理解里面的逻辑关系,拓展拓展思维。