xcode5上的SDL图像页面

时间:2013-10-20 16:53:39

标签: c++ xcode sdl sdl-2

所以我在Xcode中尝试使用SDL 2的一些超级基本内容。我无法弄清楚如何使图像文件路径正确。我已经对这个主题进行了一些搜索,这些主题提供了建议,告诉构建阶段要复制哪些文件。但这并没有帮助我。这就是我目前在文件结构方面的问题。设置:

enter image description here

enter image description here

但是,当我尝试像这样抓取文件时:

//
//  Image.h
//  SDLTest
//
//  Created by Aaron McLeod on 2013-10-17.
//  Copyright (c) 2013 Aaron McLeod. All rights reserved.
//

#ifndef SDLTest_Image_h
#define SDLTest_Image_h

#include <SDL2/SDL.h>
#include <iostream>

class Image {
public:
    static SDL_Texture* load_image(const char * filename, SDL_Renderer* renderer) {
        SDL_Surface* loaded_image = nullptr;
        SDL_Texture* texture = nullptr;

        loaded_image = SDL_LoadBMP(filename);
        if(loaded_image != nullptr) {
            texture = SDL_CreateTextureFromSurface(renderer, loaded_image);
            SDL_FreeSurface(loaded_image);
            std::cout << "loaded image" << std::endl;
        }
        else {
            std::cout << SDL_GetError() << std::endl;
        }

        return texture;
    }
};

#endif

else条件被点击,我看到它无法找到文件的错误。我传递的字符串是"resources/paddle.png"

1 个答案:

答案 0 :(得分:1)

您正在尝试从SDL_LoadBMP()加载PNG文件。这不会起作用,因为SDL_LoadBMP()只能加载BMP文件。

如果要在使用SDL2的应用程序中加载PNG文件,请使用SDL2_image框架。 SD版本的SDL2_image设置为在应用程序包的Res​​ources文件夹中查找图像文件。将您的图像文件放在Copy Bundle Resources构建阶段,SDL2_image应该能够加载文件。您不需要屏幕截图中显示的“复制文件”构建阶段。