Я по-прежнему относительно новичок в C++ и программировании, но хорошо разбираюсь. Я пишу небольшую, очень простую программу ncurses, которая до сих пор должна просто перемещать «#» по экрану с помощью клавиш WASD.Невозможно изменить переменную класса из новой функции
Проблема в том, что я не могу изменить player.x в первой функции Update().
Вот код:
#include <iostream>
#include <ncurses.h>
using namespace std;
class Player
{
public:
int x;
int y;
};
void Update()
{
int z;
z = getch();
if(z == 97) //A key
{
player.x--;
}
if(z == 100) //D key
{
player.x++;
}
if(z == 119) //W key
{
player.y--;
}
if(z == 115) //S key
{
player.y++;
}
}
void Draw(int xPos, int yPos)
{
clear();
mvprintw(yPos,xPos,"#");
refresh();
}
int main()
{
initscr();
noecho();
int doContinue;
Player player;
do
{
Update();
Draw(player.x, player.y);
}while((doContinue=getch()) != 27);
endwin();
return 0;
}
Любой вход будет полезно!
Что значит« невозможно »изменить' player.x'? Это дает вам ошибку времени компиляции? Он ничего не делает во время выполнения? Вы пытались добавить отладочные отпечатки? –
Возможно, вы захотите проверить границу экрана, чтобы вы не рисовали за пределами экрана. – hochl
Извините Jonathan Я забыл указать, что компилятор жаловался, что player.x не определен в этой области. Также hochl я буду делать это после ;-) – maximida