"event: необъявленный идентификатор", "Engine: не является именем класса или пространства имен"

KeyboardController.h  

:

#pragma once
#include "Entity.h"
#include "Component.h"
#include "../Engine/Engine.h" //здесь подключаю заголовочний файл


class KeyboardController : public Component
{

Transform* transform;
public:


bool init() override final
{
    transform = &entity->getComponent<Transform>();
    return true;
}

void update() override final
{
    
    if (Engine::event.type == SDL_KEYDOWN)// и уже здесь возникает 2 эти ошыбки
    {
        switch (Engine::event.key.keysym.sym)// и здесь тоже
        {
        case SDLK_w:
            cout << "Ok" << endl;
            transform->velosity.y = -1;
            break;
        case SDLK_a:
            transform->velosity.x = -1;
            break;
        case SDLK_d:
            transform->velosity.x = 1;
            break;
        case SDLK_s:
            transform->velosity.y = 1;
            break;
        default:
            break;
        }
    }

    else if (Engine::event.type == SDL_KEYUP)// и здесь
    {
        switch (Engine::event.key.keysym.sym)// и тут
        {
        case SDLK_w:
            transform->velosity.y = 0;
            break;
        case SDLK_a:
            transform->velosity.x = 0;
            break;
        case SDLK_d:
            transform->velosity.x = 0;
            break;
        case SDLK_s:
            transform->velosity.y = 0;
            break;
        default:
            break;
        }
    }
}
};

А вот:

Engine.h

:

#pragma once
#include "../AssetManager/AssetManager.h"
#include "../Collision/Collision.h"
#include "../ECS/BoxCollider2D.h"
#include "../ECS/EntityManager.h"
#include "../ECS/KeyboardController.h"
#include "../ECS/RigidBody.h"
#include "../ECS/SpriteRenderer.h"
#include "SDL.h"
constexpr int SCREEN_WIDTH = 640;
constexpr int SCREEN_HEIGHT = 480;
constexpr SDL_Color DARK = {30, 30, 30, 255};
class Engine {
public:
  Engine();
  ~Engine();
  void quit();
  void init();
  void clean();

  void render();
  void update();

  void events();

  inline static Engine &get() {
    if (s_instance == nullptr) {
      s_instance = new Engine();
    }
    return *s_instance;
  }
  inline bool isRunning() { return running; }
  inline SDL_Renderer *getRenderer() { return renderer; }
  static SDL_Event event;  // здесь я создаю переменную event

private:
  EntityManager *manager;
  bool running;
  SDL_Window *window;
  SDL_Color clearColor;
  SDL_Renderer *renderer;
  static Engine *s_instance;
};

Ответы (0 шт):