mirror of
https://github.com/GeekJoystick/game-and-watch-game-engine.git
synced 2025-12-17 01:16:10 +01:00
Split up main header file into smaller parts Fixed Collision math Updated Input Removed pausing dead code
73 lines
1.4 KiB
C++
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();
|
|
}
|
|
};
|