我的代码有趣的问题...在调试模式下运行(Eclipse / CDT)...我的所有磁贴似乎都将其墙布尔设置为true?有人知道wtf正在进行吗?
代码,完全MVC和几乎正确的OO(我认为),这里:
main.cpp http://pastebin.com/f14kmfap
gridworld.h http://pastebin.com/vCmzxzrj
gridworld.cpp http://pastebin.com/jKKRFE9V
我怀疑这与此片段有关:
Tile::Tile(bool w) {
wall = w;
event = false;
eventText = "";
}
我如何使用它来生成地图:
map[1][2] = new Tile(false);
答案 0 :(得分:3)
首先,Tile map[8][8];
将构建tile默认值。将bool wall
设置为true。
在使用Map::map[r][c] = new Tile()
的地图构造函数中,右侧是Tile*
,左侧是Tile
。
分配给地图的正确语法为map[r][c] = Tile();
或map[6][4]=Tile(false);
答案 1 :(得分:1)
您在使用默认ctor new Tile()
的许多地方使用Tile
。在Tile
的默认ctor中,您正在初始化wall = true;
。