2013-10-20 44 views
1

所以我一直在用Xcode中的SDL 2嘗試一些超級基本的東西。我無法弄清楚如何獲得正確的圖像文件路徑。我已經做了一些關於這個主題的搜索,導致建議告訴構建階段複製哪些文件。但這並沒有幫助我。這是我目前在文件結構方面&設置:xcode5上的SDL圖像頁面

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 

的其他條件被撞了,我看到它找不到該文件的錯誤。我通過的字符串是"resources/paddle.png"

回答

1

您試圖從SDL_LoadBMP()加載PNG文件。這是行不通的,因爲SDL_LoadBMP()只能加載BMP文件。

如果要在使用SDL2的應用程序中加載PNG文件,請使用SDL2_image框架。 Mac版本的SDL2_image設置爲在應用程序包的資源文件夾中查找圖像文件。將您的圖像文件放入Copy Bundle Resources構建階段,SDL2_image應該能夠加載文件。您不需要截圖中顯示的「複製文件」構建階段。

+0

位圖的東西很有意義,抓住了SDL2_image。所以我將我的屏幕截圖中的文件夾重命名爲「Resources」以保證安全。添加了構建階段以複製束資源。但是,路徑仍然沒有解決。我已經嘗試了''resources/paddle.png''和'「paddle.png」'。有任何想法嗎?再次感謝:) – agmcleod

+0

看看你的項目導航器截圖,它看起來像你創建了一個不生成應用程序包的命令行項目。我建議創建一個Cocoa應用程序項目,刪除.h,.m和.xib文件,並將SDL框架,源代碼文件和圖像文件添加到項目中。 Cocoa項目生成一個應用程序包。在Copy Bundle Resources構建階段使用適當的應用程序包和paddle.png文件,您應該可以將文件作爲paddle.png加載。 –