Skip to content

SmallHedgehog/Games-Tetris

Repository files navigation

俄罗斯方块游戏(SDL2+C++开发)


详细设计见我的知乎专栏 https://www.zhihu.com/people/caifei-yang/pins/posts

开发环境与依赖

实现效果图

俄罗斯方块游戏实现效果图

操作方式

  • 方向键(左、右、下)改变游戏块位置,方向键(上)改变游戏块形状

公共引用文件描述

  • res/目录下是程序中使用的资源文件,比如背景图片等;
  • Defines.h文件中定义的是const values,比如游戏区域的位置等信息;
  • Enums.h文件中定义的是enum const values,比如定义方向等;

类文件描述

Square类

定义一个类(Square)来表示我们的方块,由方块来构成我们的游戏块。这样一来,我们就能够很好地检测每个方块的碰撞,更重要的是,当我们的当前游戏块下落到游戏区域底部时,它就会成为方块的一部分,能够很好地被“删除”,并且上面的方块也能很好地向下移动。

GameBlock类

游戏块(GameBlock)由4个方块构成,我们只需要存储游戏块的中心、游戏块类型、4个方块以及方块纹理,就能够表示出游戏块。我们会根据游戏块的中心位置和类型来构造游戏块,在做旋转游戏块时,根据一个方块的中心来旋转游戏块。

Game类

游戏类Game负责游戏中游戏对象的管理,处理游戏逻辑部分,比如碰撞检测等。

Window类

Window主要负责我们窗口的绘制、资源文件的加载、初始化我们的游戏对象(Game,Game类主要负责游戏中游戏对象的管理,处理游戏逻辑部分,比如碰撞检测等,暂时不用管)以及进入到窗口循环中来接收键盘事件、鼠标事件等。

About

俄罗斯方块游戏(SDL2 + C++开发)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published