三个新功能:提示新块,玩家得分,暂停和继续。
技术要点:功能的拆分,状态的表示,不同状态的处理。状态很重要,休闲游戏、大型游戏,都少不了状态的处理。
运行效果:
三个新功能:
1.右上角提示下一块nextblock。
当前一块不能移动,赋值给地图的二维数组后,把nextblock赋值给当前活动块。
不要在原有程序上用两个整数ID,表示两个块。基本原则,原有程序尽量不改,新功能封装成新的类。
2.玩家得分。
得分同样涉及三件事MVC。M得分数据,V画面绘制,C分数的计算和增加。
V绘制:绘制的左上角坐标;绘制函数;运行状态和暂停状态下,按钮的图片不同。
封装一个类,完成MVC。
3.暂停和继续。
游戏分为两个状态,默认是运行。用一个整型变量state表示不同状态,用分支语句做不同的处理。
状态的表示:整型变量state,不同状态的取值。
状态,结合分支语句。不同状态下的绘制、数据刷新、鼠标事件处理。
总结:
数据用二维数组存放,程序用状态机,就能做很多功能,完成一些复杂流程。
代码下载: