我有一个 2D 游戏,其中每个位置都是用 3 个坐标构建的(x = 宽度,y = 高度和地板 = z)
我试图编写一个函数,它会向我抛出从开始到结束位置的所有地砖列表。
下面的代码抛出了一个“非法指令”——异常。我很困惑:
std::list<Tile*> Map::getTileArea(Position positionStart, Position positionEnd)
{
std::list<Tile*> tileAreaList;
if(positionStart.x > positionEnd.x) {
std::swap(positionStart.x, positionEnd.x);
}
if(positionStart.y > positionEnd.y) {
std::swap(positionStart.y, positionEnd.y);
}
if(positionStart.z > positionEnd.z) {
std::swap(positionStart.z, positionEnd.z);
}
for(int _x = positionStart.x; _x < positionEnd.x; _x++) {//<-Exception occurs here.
//Procedurestepping told me that but I cannot find an explanation for this.
for(int _y = positionStart.y; _y < positionEnd.y; _y++) {
for(int _z = positionStart.z; _z < positionEnd.z; _z++) {
Tile* tile = getTileByPosition(Position(_x, _y, _z));
if(tile != NULL) {
tileAreaList.push_back(tile);
}
}
}
}
return tileAreaList;
}
谁能帮我?谢谢。