(BROKEN) started to refractor as stated in TODO
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
#include "game.h"
|
||||
|
||||
Game::Game(std::string title, int width, int height, int targetFramerate, int targetUpdaterate)
|
||||
: Renderer(title, width, height, targetFramerate) {
|
||||
Game::Game(std::string title, int width, int height, int targetFramerate, int targetUpdaterate) {
|
||||
Renderer* temp = new Renderer(title, width, height, targetFramerate);
|
||||
this->renderer = temp;
|
||||
|
||||
this->TargetMsPerFrame = targetFramerate;
|
||||
this->TargetMsPerUpdate = targetUpdaterate;
|
||||
@@ -12,7 +13,7 @@ Game::Game(std::string title, int width, int height, int targetFramerate, int ta
|
||||
void Game::PollEvents() {
|
||||
while (SDL_PollEvent(&m_event) != 0)
|
||||
if (m_event.type == SDL_QUIT)
|
||||
this->CloseDisplay();
|
||||
this->renderer->CloseDisplay();
|
||||
}
|
||||
|
||||
Game::~Game() {
|
||||
|
||||
@@ -1,26 +1,14 @@
|
||||
#include "entity.h"
|
||||
|
||||
Entity::Entity(std::string name, SDL_Renderer* SDLRenderer)
|
||||
: m_rectPos(0, 0)
|
||||
, m_rectSize(0, 0)
|
||||
, m_col(0, 0, 0, 0)
|
||||
, Pos(0, 0)
|
||||
, Size(0, 0) {
|
||||
Entity::Entity(std::string name) {
|
||||
|
||||
this->m_name = name;
|
||||
this->m_SDLRenderer = SDLRenderer;
|
||||
this->Rendertype = RenderType::MODE_TEXTURE;
|
||||
}
|
||||
|
||||
Entity::Entity(std::string name, SDL_Renderer* SDLRenderer, PolyDrawType drawType)
|
||||
: m_rectPos(0, 0)
|
||||
, m_rectSize(0, 0)
|
||||
, m_col(0, 0, 0, 0)
|
||||
, Pos(0, 0)
|
||||
, Size(0, 0) {
|
||||
Entity::Entity(std::string name, PolyDrawType drawType) {
|
||||
|
||||
this->m_name = name;
|
||||
this->m_SDLRenderer = SDLRenderer;
|
||||
this->Drawtype = drawType;
|
||||
this->Rendertype = RenderType::MODE_POLYGON;
|
||||
}
|
||||
@@ -60,21 +48,18 @@ bool Entity::LoadTexture(SDL_Surface* image) {
|
||||
}
|
||||
|
||||
void Entity::SetDrawColour(Vec4 col) {
|
||||
this->m_col = col;
|
||||
SDL_SetRenderDrawColor(m_SDLRenderer, col.x, col.y, col.z, col.w);
|
||||
|
||||
}
|
||||
|
||||
void Entity::SetRect(Vec2 pos, Vec2 size) {
|
||||
m_rectPos = pos;
|
||||
m_rectSize = size;
|
||||
m_rect = { pos.x, pos.y, size.x, size.y };
|
||||
void Entity::SetRect(Rect* rect) {
|
||||
this->m_rect = rect;
|
||||
}
|
||||
|
||||
void Entity::SetVecPoints(std::vector<Vec4> points) {
|
||||
void Entity::SetVecPoints(std::vector<Vec4*> points) {
|
||||
this->m_linePoints = points;
|
||||
}
|
||||
|
||||
void Entity::AddVecPoint(Vec4 point) {
|
||||
void Entity::AddVecPoint(Vec4* point) {
|
||||
this->m_linePoints.push_back(point);
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include <vector>
|
||||
#include <SDL.h>
|
||||
#include <SDL_image.h>
|
||||
#include "rect.h"
|
||||
#include "mathHelper.h"
|
||||
|
||||
enum struct RenderType {
|
||||
@@ -22,8 +23,8 @@ enum struct PolyDrawType {
|
||||
|
||||
class Entity {
|
||||
public:
|
||||
Entity(std::string name, SDL_Renderer* SDLRenderer); // Texture overload
|
||||
Entity(std::string name, SDL_Renderer* SDLRenderer, PolyDrawType drawType); // Polygon overload
|
||||
Entity(std::string name); // Texture overload
|
||||
Entity(std::string name, PolyDrawType drawType); // Polygon overload
|
||||
|
||||
RenderType Rendertype = RenderType::MODE_DEFAULT;
|
||||
PolyDrawType Drawtype = PolyDrawType::DRAW_DEFAULT;
|
||||
@@ -33,16 +34,16 @@ public:
|
||||
|
||||
void SetDrawColour(Vec4 col);
|
||||
|
||||
void SetRect(Vec2 pos, Vec2 size);
|
||||
void SetRect(Rect* rect);
|
||||
|
||||
void SetVecPoints(std::vector<Vec4> points);
|
||||
void AddVecPoint(Vec4 point);
|
||||
void SetVecPoints(std::vector<Vec4*> points);
|
||||
void AddVecPoint(Vec4* point);
|
||||
|
||||
void Render();
|
||||
|
||||
Vec2 Pos;
|
||||
Vec2 Size;
|
||||
|
||||
Vec2* Pos;
|
||||
Vec2* Size;
|
||||
|
||||
virtual ~Entity();
|
||||
protected:
|
||||
std::string PATH = "C:/Users/Ben/Desktop/crumpet-engine";
|
||||
@@ -50,17 +51,11 @@ protected:
|
||||
private:
|
||||
std::string m_name;
|
||||
|
||||
Vec2 m_rectPos;
|
||||
Vec2 m_rectSize;
|
||||
SDL_Rect m_rect;
|
||||
Rect* m_rect;
|
||||
Vec4* m_col;
|
||||
|
||||
Vec4 m_col;
|
||||
|
||||
std::vector<Vec4> m_linePoints;
|
||||
std::vector<Vec4*> m_linePoints;
|
||||
SDL_Texture* m_texture;
|
||||
int m_textureW;
|
||||
int m_textureH;
|
||||
|
||||
SDL_Renderer* m_SDLRenderer;
|
||||
int m_textureH
|
||||
};
|
||||
|
||||
|
||||
@@ -3,14 +3,18 @@
|
||||
#include <string>
|
||||
#include <SDL.h>
|
||||
#include "renderer.h"
|
||||
#include "camera.h"
|
||||
#include "timer.h"
|
||||
#include "entity.h"
|
||||
#include "sprite.h"
|
||||
|
||||
class Game : public Renderer {
|
||||
class Game {
|
||||
public:
|
||||
Game(std::string title, int width, int height, int targetFramerate, int targetUpdaterate);
|
||||
|
||||
Renderer* renderer;
|
||||
Camera* camera;
|
||||
|
||||
void PollEvents();
|
||||
|
||||
int TargetMsPerFrame; // If 0, the engine will try as many as possibe, if 1, it will use vsync
|
||||
|
||||
@@ -9,19 +9,19 @@ int main(int argc, char** argv) {
|
||||
Game game("Crumpet engine", SCREEN_WIDTH, SCREEN_HEIGHT, 0, 1000 / 60); // 1000 / 60);
|
||||
Timer timer;
|
||||
|
||||
Sprite sans("sans", game.SDLRenderer, SpriteType::SPRITE_ANIMATED);
|
||||
Sprite sans("sans", SpriteType::SPRITE_ANIMATED);
|
||||
sans.LoadSpriteTextures("/resources/sans-undertale-spritesheet.png");
|
||||
sans.UseSpriteSheet(SpriteState::STATE_FRONT, 30, 9, 230, 300, 10, 4);
|
||||
sans.UseSpriteSheet(SpriteState::STATE_RIGHT, 30, 320, 170, 300, 10, 4);
|
||||
sans.UseSpriteSheet(SpriteState::STATE_LEFT, 40, 640, 170, 300, 10, 4);
|
||||
sans.Pos = Vec2(100, 100);
|
||||
sans.Pos = &Vec2(100, 100);
|
||||
|
||||
Sprite explosion("explosion", game.SDLRenderer, SpriteType::SPRITE_ANIMATED);
|
||||
Sprite explosion("explosion", SpriteType::SPRITE_ANIMATED);
|
||||
explosion.LoadSpriteTextures("/resources/explosion.png");
|
||||
explosion.UseSpriteSheet(SpriteState::STATE_DEFAULT, 1, 260, 64, 63, 0, 16);
|
||||
explosion.ResizeSpriteStateByFactor(SpriteState::STATE_DEFAULT, 4);
|
||||
|
||||
while (!game.IsDisplayClosed()) {
|
||||
while (!game.renderer->IsDisplayClosed()) {
|
||||
game.PollEvents();
|
||||
|
||||
if (timer.GetTimeElapsed() >= game.TargetMsPerUpdate) { // Constant update rate, despite framerate
|
||||
@@ -29,10 +29,10 @@ int main(int argc, char** argv) {
|
||||
const Uint8 *state = SDL_GetKeyboardState(NULL);
|
||||
if (state[SDL_SCANCODE_D]) {
|
||||
sans.Spritestate = SpriteState::STATE_RIGHT;
|
||||
sans.Pos.x += 10;
|
||||
sans.Pos->x += 10;
|
||||
} else if (state[SDL_SCANCODE_A]) {
|
||||
sans.Spritestate = SpriteState::STATE_LEFT;
|
||||
sans.Pos.x -= 10;
|
||||
sans.Pos->x -= 10;
|
||||
} else sans.Spritestate = SpriteState::STATE_FRONT;
|
||||
|
||||
if (timer.ticks % 5 == 0) {
|
||||
@@ -43,10 +43,10 @@ int main(int argc, char** argv) {
|
||||
timer.Tick();
|
||||
}
|
||||
|
||||
game.RenderClear();
|
||||
game.RenderSprite(&sans);
|
||||
game.RenderSprite(&explosion);
|
||||
game.RenderUpdate();
|
||||
game.renderer->RenderClear();
|
||||
game.renderer->RenderSprite(&sans);
|
||||
game.renderer->RenderSprite(&explosion);
|
||||
game.renderer->RenderUpdate();
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -1,10 +1,8 @@
|
||||
#include "sprite.h"
|
||||
|
||||
Sprite::Sprite(std::string name, SDL_Renderer* SDLRenderer, SpriteType mode)
|
||||
: Entity(name, SDLRenderer)
|
||||
, Pos(0, 0) {
|
||||
: Entity(name) {
|
||||
|
||||
this->m_SDLRenderer = SDLRenderer;
|
||||
this->Spritetype = mode;
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ enum struct SpriteState {
|
||||
|
||||
class Sprite : public Entity {
|
||||
public:
|
||||
Sprite(std::string name, SDL_Renderer* SDLRenderer, SpriteType mode);
|
||||
Sprite(std::string name, SpriteType mode);
|
||||
|
||||
SpriteType Spritetype = SpriteType::SPRITE_DEFAULT;
|
||||
SpriteState Spritestate = SpriteState::STATE_DEFAULT;
|
||||
@@ -61,7 +61,7 @@ public:
|
||||
void MoveX(int offest);
|
||||
void MoveY(int offest);
|
||||
|
||||
Vec2 Pos;
|
||||
Vec2* Pos;
|
||||
void Render();
|
||||
|
||||
virtual ~Sprite();
|
||||
@@ -69,7 +69,6 @@ private:
|
||||
std::map <SpriteState, std::map<int, SDL_Rect*>> m_spriteMaps;
|
||||
std::map <SpriteState, Vec2*> m_spriteSize;
|
||||
|
||||
SDL_Renderer* m_SDLRenderer;
|
||||
SDL_Texture* m_spriteSheetTexture;
|
||||
|
||||
SpriteState m_lastSpritestate = SpriteState::STATE_DEFAULT;
|
||||
|
||||
Reference in New Issue
Block a user