Тут зубчатый массив не нужен. Можно и одномерным прекрасно обойтись.
for (int i = 0; i < heightGameField; i++)
gameField[i] = new int[widthGameField];
Тут всё поле можно не перерисовывать. Змейка это вообще - эконом-игра. В ней можно обновлять
только голову змеи и хвост. И те места на карте где выпадает еда.
for (int i = 0; i < heightGameField; i++)
{
for (int j = 0; j < widthGameField; j++)
{
switch (gameField[i][j])
Я не кодил на SFML/Graphics.hpp. Моя С++ библиотека когда-то называлась Borland C++ BGI. Но там мне хватало
вот такого частичного обновления экрана.
Зачем этот метод? Он безсмысленный.
int** getGameField(void)
{
return gameField;
}
Он взламывает инкапсуляцию класса. После него всё ООП должно пойди по звезде. Вобщем можешь его даже не делать.
Вообще в данной игровой логике ООП не очень нужно. Ну тоесть я не вижу ниакой мотивации к ООП. Между змеей и локацией нет никакой секретности. Короче пиши набор функций и не парься. Если SFML жостко не требует ООП
то и не беспокойся об этом. Шаблонизация тут как я понимаю важнее чем ООП. А об этом еще великий Степанов
говорил.