> 文章列表 > 第四十一章 2D游戏(1)

第四十一章 2D游戏(1)

第四十一章 2D游戏(1)

首先需要确认游戏机制:
1.一个不能上下移动的挡板,只能左右移动
2.一个球在屏幕上运动,每次碰撞会使球根据碰撞位置改变运动方向
3.球运动到屏幕底部,则游戏结束
4.当所有方块被破坏,游戏胜利

其次,需要先定义一个超级游戏类:包含所有相关的渲染和代码。
作用是:管理游戏代码,将窗口代码和游戏进行解耦。这样就可以把相同的类迁移到不同的窗口库
封装一个初始化函数,一个更新函数,一个处理输入函数,一个渲染函数:
class Game
{
public:
// 游戏状态
GameState State;
GLboolean Keys[1024];
GLuint Width, Height;
// 构造函数/析构函数
Game(GLuint width, GLuint height);
~Game();
// 初始化游戏状态(加载所有的着色器/纹理/关卡)
void Init();
// 游戏循环
void ProcessInput(GLfloat dt);
void Update(GLfloat dt);
void Render();
};
该类包含了所有在一个游戏类中会出现的东西。
给定一个宽度和高度来初始化这个游戏,并使用Init函数加载着色器,纹理,并初始化所有的游戏状态。
可以通过调用ProcessInput函数,使用存储在Keys数组中的数据来处理输入。
在Update函数中更新游戏设置状态,举例:挡板和球的移动。
可以调用Render函数,对游戏进行渲染。当然,运动逻辑和渲染逻