Я создаю игру. У меня есть два исходных файла: game. cpp и renderHandler. cpp. У меня есть один заголовочный файл, gameState.h. Файл gameState.h содержит stati c экземпляр перечисления, представляющий различные состояния игры.
Я хочу поделиться этой переменной stati c с двумя исходными файлами. Я не хочу две отдельные переменные в каждом исходном файле. Если я изменю значение переменной состояния игры, я хочу, чтобы она была перенесена в другой исходный файл.
gameState.h
#pragma once
enum State {
start,
play,
stop
} static gameState;
game. cpp
#include "../inc/gameState.h"
void Game::init()
{
gameState = State::play;
}
renderHandler. cpp
#include "../inc/gameState.h"
void RenderHandler::render()
{
if (gameState == State::start) {
// code
}
else if (gameState == State::play) {
// code
}
else if (gameState == State::stop) {
// code
}
}
Значение gameState изменено в файле игры. cpp. Но это не влияет на значение gameState в renderHandler. cpp, по умолчанию оно равно 0, что мне не нужно. Изменение значения происходит до того, как какой-либо код рендеринга будет выполнен.
Как я могу совместно использовать stati c экземпляр перечисления между двумя исходными файлами? Мой лог c неправильный, и я не должен использовать заголовки и перечисления таким образом?