Как переместить объект в c ++ / opengl на новое место и стереть старый объект - PullRequest
0 голосов
/ 10 марта 2012

Я делаю игру Pacman в opengl, и я хочу переместить моего pacman в игру, представленную матрицей.

Матрица имеет размер 16x16, и я ставлю 4, когда хочу нарисовать стены,маленькие сферы и 2 для pacman.

В основном классе моего проекта я читаю клавишу с клавиатуры и отправляю информацию классу, который я определил для игры.В этом классе у меня есть эта функция:

void boardGame::refreshPacman(int n, int m)
{

    int x, y;


    (* pacman).movePacman(n, m); // This is working, it send information to class Pacman. In there I store the n (x axe) and m(y axe), and i get the next coordinates where pacman should translate.


    x = (* pacman).getPacX(); // get coordinate of the old pacman
    y = (* pacman).getPacY(); // get coordinate of the old pacman

    board[x][y] = 0; // delete old information of pacman in matrix 

    x += n; // set the coordinates of x axis for new pacman
    y += m; // set the coordinates of y axis for new pacman

    wall[x][y] = 2; // insert the information of new pacman in matrix

    pac->redraw (x, y, 0.5); // construct the new pacman
}

Pacman Это не стирается.Можете ли вы сказать мне, что мне нужно делать дальше, и что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 10 марта 2012

Pacman Это не стирается. Можете ли вы сказать мне, что мне нужно делать дальше, и что я делаю не так?

OpenGL не является сценографом (это становится единственным утверждением, которое я, очевидно, делаю почти в каждом ответе). Это API рисования, который позволяет рисовать точки, линии и треугольники. Там нет понятия "геометрические объекты".

Если вы что-то измените: очистите старую картинку и нарисуйте новую!

2 голосов
/ 10 марта 2012

Используйте оператор -> с указателями классов.

(* pacman).movePacman(n, m); 

Должно быть:

pacman->movePacman(n,m);

Чтобы стереть предыдущий пакет, попробуйте перерисовать экран перед добавлением нового. Кроме того, внутренний деструктор pacman также завершает рендеринг изображения / спрайта pacman?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...