Я пытался создать игру на C++, используя графическую библиотеку SDL 2.0, но у меня возникла проблема.Игра на C++ Доступ к отдельным переменным классам
У меня есть два класса пользователя и враг. Здесь вырубают версии обоих, просто спросите, и я вставить все дело
class User
{
public:
//Friends:
friend class Enemy;
protected:
private:
//The sprite position
SDL_Rect SpritePos = {10, 100};
};
class Enemy
{
public:
//Friends:
friend class User;
Enemy();
int CheckEnemy(SDL_Surface* &ScreenSurface);
//Loads enemy images
bool LoadEnemyMedia();
protected:
private:
//Controls the AI movement
void Movement();
//Wizard 1's location on screen
SDL_Rect Wizard1Pos = {50, 70};
};
Функция Enemy :: Движение обнаруживает местоположение спрайта, а затем перемещает себя соответствующим образом, однако она имеет не может получить текущее значение Spritepos, только значение, которое оно инициализирует, в этом случае 10. Вот код функции Enemy :: Movement. Как я могу это исправить, помните, что эти функции работают в цикле.
void Enemy::Movement()
{
User Player;
if (Wizard1Pos.x < Player.SpritePos.x)
{
Wizard1Pos.x ++;
}else if (Wizard1Pos.x > Player.SpritePos.x)
{
Wizard1Pos.x --;
}
}
Я изучил использование ссылочной переменной, однако он все еще читает другое значение, когда я печатаю его из отдельного класса. Как я могу убедиться, что он читает правильную копию. – Mojachiee
Мне нужно больше узнать о коде. Как насчет общедоступной папки dropbox/gdrive/skydrive? – Peter
https://drive.google.com/folderview?id=0B5a8TxDpXYdfWUpGNWN6S2dUU00&usp=sharing – Mojachiee