"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;
};