详细设计见我的知乎专栏 https://www.zhihu.com/people/caifei-yang/pins/posts
- IDE: Virtual Studio 2012
- 依赖库: SDL2(下载地址: https://www.libsdl.org/download-2.0.php)
- 开发语言: C++
- 方向键(左、右、下)改变游戏块位置,方向键(上)改变游戏块形状
- res/目录下是程序中使用的资源文件,比如背景图片等;
- Defines.h文件中定义的是const values,比如游戏区域的位置等信息;
- Enums.h文件中定义的是enum const values,比如定义方向等;
Square类
定义一个类(Square)来表示我们的方块,由方块来构成我们的游戏块。这样一来,我们就能够很好地检测每个方块的碰撞,更重要的是,当我们的当前游戏块下落到游戏区域底部时,它就会成为方块的一部分,能够很好地被“删除”,并且上面的方块也能很好地向下移动。
GameBlock类
游戏块(GameBlock)由4个方块构成,我们只需要存储游戏块的中心、游戏块类型、4个方块以及方块纹理,就能够表示出游戏块。我们会根据游戏块的中心位置和类型来构造游戏块,在做旋转游戏块时,根据一个方块的中心来旋转游戏块。
Game类
游戏类Game负责游戏中游戏对象的管理,处理游戏逻辑部分,比如碰撞检测等。
Window类
Window主要负责我们窗口的绘制、资源文件的加载、初始化我们的游戏对象(Game,Game类主要负责游戏中游戏对象的管理,处理游戏逻辑部分,比如碰撞检测等,暂时不用管)以及进入到窗口循环中来接收键盘事件、鼠标事件等。