2012-01-20 135 views
2

我試圖在Xcode中創建SDL應用程序,但我在加載圖像時遇到了問題。我使用this template,因爲I couldn't get it to work從零開始。帶Xcode的SDL需要絕對路徑

每當我嘗試使用SDL_LoadBMP加載映像時,它將返回NULL,除非我給出絕對路徑。 (/ Users/Cole/code ...)我查看了導出的.app文件,它確實有我想要加載到Contents/Resources /中的映像,並且我嘗試了所有我可以想到的組合那些(../Resources/image.bmp等),但我似乎無法得到它的工作。

有沒有人有解決方案?我使用Xcode 4運行Mac OS 10.7,因此我無法使用SDL下載中的模板。

而且,我嘗試使用SDL_ttf,但我得到這個錯誤:

warning: Unable to read symbols for @executable_path/../Frameworks/SDL_ttf.framework/Versions/A/SDL_ttf (file not found). 
warning: Unable to read symbols from "SDL_ttf" (not yet mapped into memory). 

有不正好是它在尋找一個框架文件夾,但不知何故,找到正規SDL框架就好了。

+0

你有沒有找到一個解決方案? – bottleboot

+1

@bottleboot是的,請參閱下面的答案。當時我不接受它,因爲我不知道如何使它工作,但現在我意識到,這正是我需要的。您需要將他的代碼包含在.m或.mm文件中,然後將其傳遞給C++代碼。 – Cole

+0

很酷,非常感謝!所以,即使我想編寫跨平臺代碼,這是要走的路嗎? – bottleboot

回答

1

你可以得到的路徑,包含文件您的Resources目錄與

NSString *path = [[NSBundle mainBundle] resourcePath]; 

或可選擇地(在理論上更清潔,因爲它可以訪問本地化的文件),您可以得到完整的文件名

NSString *file = [[NSBundle mainBundle] pathForResource:@"image.bmp" ofType:nil]; 

你需要的C字符串傳遞給SDL_LoadBMP,因此無論是兩個:

SDL_LoadBMP([[path stringByAppendingString: @"/image.bmp"] UTF8String]); 

SDL_LoadBMP([file UTF8String]); 
0

我有同樣的問題,並找到一種方法,而不使用任何目標c。

在你的目標的Xcode點擊即可進入到構建階段部分

然後在最上面一欄點擊:編輯 - >添加構建階段 - >添加複製文件建立

階段

現在改變的目的地新創建的階段爲「產品目錄」,然後根據需要添加任何子路徑。

現在您只需將圖像添加到下面的列表中,它應該可以工作!

Xcode steps