LearnOpenGL网站打砖块小游戏项目复现心得


       LearnOpenGL网站打砖块小游戏项目复现心得。
https://learnopengl.com/以及作者在GitHub上传的资料中我们可以获取该项目的全套的代码和资源素材,这里将不再补充。
在整个项目复现过程中,主要问题基本集中在环境配置上,分享一下我在项目中遇到的三个问题及其解决办法。
一、莫名其妙的问题
    在项目中会出现一些莫名其妙的问题,例如会出现找不到main函数或找不到opengl32.lib等错误。
解决办法:在创建空项目之后,在配置环境之前,首先创立一个.cpp文件,在文件中输入如下代码
int main()
{
    return 0 ;
}
将这个项目运行一次后再配置环境,可以解决如上问题。
二、配置环境
    头文件和dll文件在这个项目中,除了作者在项目中打包好的,还有窗口接口文件glad,glfw,矩阵运算文件glm,后面音乐文件irrKlang,在作者的LearnOpenGL-master\includes下可以找到
 而文本文件freetype,则需要在https://freetype.org/中下载,在解压文件中freetype-2.10.0\builds\windows\vc2010,点击freetype.sln,

生成后可在,freetype-2.10.0\objs\Win32\Debug中找到生成的freetype.dll。
freetype.dll、irrKlang.dll、ikpMP3.dll都放到game_breakout\x64\Debug目录下,与game_breakout.exe同一目录即可。
三、代码问题
    在作者源代码game.cpp中
void Game::Init()函数下

    Renderer = new SpriteRenderer(ResourceManager::GetShader("sprite"));
会出现如下报错

所以替换为
    Shader shader_temp = ResourceManager::GetShader("sprite");
    Renderer = new SpriteRenderer(shader_temp);

同理在
void Game::Render()函数下 
 Renderer->DrawSprite(ResourceManager::GetTexture("background"), glm::vec2(0.0f, 0.0f), glm::vec2(this->Width, this->Height), 0.0f);
会出现如下报错

如法炮制替换为
        Texture2D texture_temp = ResourceManager::GetTexture("background");
        Renderer->DrawSprite(texture_temp, glm::vec2(0.0f, 0.0f), glm::vec2(this->Width, this->Height), 0.0f);



#图形图像#
全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
1
分享
牛客网
牛客企业服务