抱歉打扰你!现在我有一个" bug"在我的游戏中,如果有人能指出我做错了什么,那将非常有帮助。发生的事情是当我通过Xcode运行我的代码时,TileMap加载文件很好。
然而,当我获得生成的可执行文件时,将其复制并粘贴到不同的位置,然后将所有需要的数据文件粘贴到文件夹(.png文件,.txt文件)中,游戏工作正常,但事实是tilemap不会加载。
我不确定这个错误是由于文件位置在IDE和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
非常感谢您的阅读和帮助。
答案 0 :(得分:0)
我找到了自己问题的答案。我需要获取基本路径,然后让系统从那里搜索文件。