所以我在Xcode中尝试使用SDL 2的一些超级基本内容。我无法弄清楚如何使图像文件路径正确。我已经对这个主题进行了一些搜索,这些主题提供了建议,告诉构建阶段要复制哪些文件。但这并没有帮助我。这就是我目前在文件结构方面的问题。设置:
但是,当我尝试像这样抓取文件时:
//
// 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"
答案 0 :(得分:1)
您正在尝试从SDL_LoadBMP()加载PNG文件。这不会起作用,因为SDL_LoadBMP()只能加载BMP文件。
如果要在使用SDL2的应用程序中加载PNG文件,请使用SDL2_image框架。 SD版本的SDL2_image设置为在应用程序包的Resources文件夹中查找图像文件。将您的图像文件放在Copy Bundle Resources构建阶段,SDL2_image应该能够加载文件。您不需要屏幕截图中显示的“复制文件”构建阶段。