gpt4 book ai didi

C++ 和 SDL : Problem with showing image?

转载 作者:行者123 更新时间:2023-11-28 08:25:43 25 4
gpt4 key购买 nike

出于某种原因,SDL 拒绝渲染图像。我不明白为什么,这真的阻碍了我正在开发的 2d 游戏的进展。一切都正确链接等。这是我的代码:

//main.cpp
#include "main.h"

void game::createWindow(const int SCREEN_W, const int SCREEN_H, const char* SCREEN_NAME)
{
buffer = SDL_SetVideoMode(SCREEN_W, SCREEN_H, 0, NULL);
SDL_WM_SetCaption(SCREEN_NAME, NULL);
}

void game::enterLoop()
{
while(Running == true)
{
SDL_BlitSurface(zombie, NULL, buffer, NULL);
SDL_Flip(buffer);

while(SDL_PollEvent(&gameEvent))
{
if(gameEvent.type == SDL_QUIT)
{
Running = false;
}
}
}
}

void game::loadContent()
{
zombie = SDL_LoadBMP("zombie.bmp");
}

int main(int argc, char* argv[])
{
game gameObj;

SDL_Init(SDL_INIT_EVERYTHING);
gameObj.createWindow(960, 600, "uShootZombies");
gameObj.loadContent();
gameObj.enterLoop();

SDL_Quit();

return 0;
}

//main.h
#include <SDL.h>
#include <fstream>
#include <string>

using namespace std;

class game
{
public:
void createWindow(const int SCREEN_W, const int SCREEN_H, const char* SCREEN_NAME);
void enterLoop();
void loadContent();

game()
{
Running = true;
}

~game()
{
SDL_FreeSurface(buffer);

SDL_FreeSurface(background);
SDL_FreeSurface(player);
SDL_FreeSurface(zombie);
}

private:
SDL_Surface* buffer;

SDL_Surface* background;
SDL_Surface* player;
SDL_Surface* zombie;

SDL_Event gameEvent;
bool Running;
};NU

最佳答案

我刚刚复制了您所有的代码以在 code::blocks 中使用,它工作正常。当然,我使用的是我自己的 .bmp 文件,我将其命名为“zombie.bmp”

您确定您的 .bmp 文件没问题吗?

请注意,如果您最初将其保存为 .jpeg 文件或类似的文件,然后简单地将其重命名为 .bmp,它将不起作用(并且也不会抛出错误)

它必须最初保存为 bmp。

我能想到的就这些了。<​​/p>

关于C++ 和 SDL : Problem with showing image?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4161606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com