0
我仍然在學習SFML和C++,所以請理解我仍處於基礎級別。 這是我第一次使用這個網站,所以IDK,如果我這樣做的權利。 我想創建一個函數set
,這將允許我傳遞一個2d數組作爲參數,並在數組中有1時放置一個磁貼。所以我可以使用矩陣繪製地圖和事物。 ww是窗口寬度,wh是窗口高度。在main
我做了一個for循環,將穿過瓷磚並將它們繪製到窗口。但是當我運行它時,它給了我錯誤:分段錯誤(核心轉儲)「錯誤:139」。有沒有更好的方法來做到這一點,我做錯了什麼? 謝謝。瓷磚映射錯誤
struct field
{
int rectsizex;
int rectsizey;
RectangleShape * tiles;
field (int s)
{
rectsizex = ww/s;
rectsizey = wh/s;
tiles = new RectangleShape[rectsizex * rectsizey];
}
~field()
{
delete tiles;
}
RectangleShape * set(int ** matr)
{
Vector2f size((ww/rectsizex), (wh/rectsizey));
int posx = ww/rectsizex;
int posy = wh/rectsizey;
for(int x = 0; x<rectsizex; x++)
{
for(int y = 0; y<rectsizey; y++)
{
int i = ((x*rectsizey)+1)+y;
tiles[i].setSize(size);
if(matr[x][y] == 1)
{
tiles[i].setFillColor(Color::Black);
}
else
{
tiles[i].setFillColor(Color::White);
}
tiles[i].setPosition(x * posx, y * posy);
}
}
return tiles;
}
};
這是一個基本的編程問題,最好通過使用調試器來解決。你會遇到很多這些問題,你需要正確的工具。檢查你的開發工具,並學習如何使用你使用的IDE的調試器。 – nvoigt