0
抱歉打擾你!現在我在我的遊戲中有一個「bug」,如果有人能指出我在做錯什麼,這將會非常有幫助。發生什麼事是當我通過Xcode運行我的代碼時,TileMap加載文件的好處。在C++中打開std :: ifstream文件的錯誤(一半作品)
但是,當我得到生成的可執行文件,將其複製並粘貼到不同的位置,然後將所有需要的數據文件粘貼到文件夾(.png文件,.txt文件)中時,遊戲可以正常工作,除了事實該地圖不會加載。
我不確定這個bug是否是由於我在IDE中運行它時單獨更改文件位置所致。
圖片:(對不起,我沒有足夠的信譽使這裏的鏈接)在Xcode
遊戲工作運行: 遊戲不是從Xcode中運行:
這是代碼的一部分TileMap.cpp與從文本文件中的數據加載到一個數組交易(只是爲了告訴你它的工作原理):
int t_map[20][15] {};
TileMap::TileMap(std::string fileName, std::string picFile)
{
std::ifstream inFS;
inFS.open(fileName.c_str());
if(!(inFS.is_open()))
{
std::cout << "Could not open file.\n";
return;
}
//controlls row
int tt = 0;
while(!inFS.eof())
{
char buff[100];
//move to buffer thing
inFS.getline(buff, 100);
const char * token[20] = {};
int j = 0;
token[0] = strtok(buff, ",");
if(token[0])
{
for(j=1;j<COLMAX;j++)
{
token[j] = strtok(0, ",");
if(!token[j])
break;
}
}
for(int i=0;i<COLMAX;i++)
{
t_map[i][tt] = atoi(token[i]);
}
tt++;
}
inFS.close();
//ends the loading the file and starts the image stuff
TextureManager::Instance()->load(picFile, "tileMap", Game::Instance()->getRenderer());
}
文本文件的內容我傳:
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,3,3,3,3
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2
非常感謝您的閱讀和幫助。
可能的重複[爲什麼iostream :: eof裏面的循環條件被認爲是錯誤的?](http://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-錯誤) – Wintermute 2015-04-02 08:09:34
你如何建立'fileName'和'picFile'參數?你有沒有檢查路徑實際上是正確的?換句話說,它從文件中讀取失敗還是根本找不到文件? – Ionut 2015-04-02 08:34:37
我假設文件路徑是正確的,因爲它在xCode中運行時工作。 – KojinKuro 2015-04-02 08:46:39