============================================================
这是一个基于OpenGL的cpp代码而实现的俄罗斯方块游戏。
基于已有框架代码完成。
框架代码在另一个分支“blank_code”中。(※ 直接下载master中的code无法直接运行,可以先下载blank_code中的cmake文件,cmake构建后,直接把这里的main粘过去即可正常运行)(环境安装也在另一个分支)
游戏时请使用英文输入法,否则无法识别字母按键。
!注意行是y坐标!
得分在终端打印,通过 \r 的方式在同一行刷新
再次按P键即可解除暂停。
此时按R仍可以重新游戏,并且只是清空board和颜色,并没有调用init()。
实现的功能:
每次while执行allFallsDown()让所有方块下移,间隔是1s,间隔在其中的userOptions()内部停留实现的。
forPause()是暂停检查函数,每个间隙都会检查是否是暂停状态,随时能够暂停与开始。暂停的逻辑就是while不断检测
当最上方格子被占用,游戏结束,进入该循环,并打印结束信息。等待用户退出或者重新开始。
userOptions()用户操作部分:
循环20次,每次停留50ms(共1 s ,也就是说用户可以在1s内操作20次并且及时回显),每次也会检查键盘按动的时间,是否有行满,并及时回显。
每秒的下移,如果下移失败,固定这个方块,开始下一个方块。
Cpp的方式
首先是形状的确定,这里的switch写法有些繁琐,可以用个vector来简化,如接下来的颜色选择(本文最开始部分已展示颜色的初始化)。