Files
game-and-watch-game-engine/Core/Inc/Engine/GameAndWatchEngine.h
Geek_Josytick 07a568ff95 Cleanup
Split up main header file into smaller parts
Fixed Collision math
Updated Input
Removed pausing dead code
2021-01-04 01:15:33 +01:00

73 lines
1.4 KiB
C++

#include "Defines.h"
#include "Sprite.h"
#include "Vector2.h"
#include "Transform.h"
#include "Math.h"
#include "Palette.h"
#include "KeyState.h"
#include "Input.h"
#include "Renderer.h"
#include "SpriteManager.h"
#include "Entity.h"
#include "EntityManager.h"
class Engine{
protected:
Palette palette;
Renderer* renderer;
SpriteManager* spriteManager;
EntityManager* entityManager;
bool running;
uint16_t backgroundColor;
public:
Engine(){
uint16_t colors[16] = {0x0000, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF};
palette.SetColors(colors);
renderer = new Renderer(WIDTH, HEIGHT, "Game&Watch engine, by Geek_Joystick");
renderer->SetPalette(&palette);
spriteManager = SpriteManager::GetInstance();
entityManager = EntityManager::GetInstance();
backgroundColor = 0;
}
virtual void Start(){
running = true;
while (running)
{
Events();
Update();
Draw();
}
}
protected:
virtual void Events(){
KeyState buttons = Input::GetButtons();
if (buttons.End){
running = false;
}
entityManager->Events(buttons);
}
virtual void Update(){
entityManager->Update();
}
virtual void Draw(){
renderer->Clear(backgroundColor);
entityManager->Draw(renderer);
renderer->Update();
}
};