(STABLE BUILD) all errors resolved, refractor complete

This commit is contained in:
Ben
2018-10-09 16:36:47 +01:00
parent 725536a4c3
commit c93d7e4927
13 changed files with 49 additions and 50 deletions

View File

@@ -1,8 +1,7 @@
#include "game.h"
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->renderer = new Renderer(title, width, height, targetFramerate);
this->TargetMsPerFrame = targetFramerate;
this->TargetMsPerUpdate = targetUpdaterate;

View File

@@ -0,0 +1,5 @@
#pragma once
#include "game.h"
#include "timer.h"
#include "sprite.h"

View File

@@ -137,6 +137,7 @@
</ItemGroup>
<ItemGroup>
<ClInclude Include="camera.h" />
<ClInclude Include="crumpet-engine.h" />
<ClInclude Include="entity.h" />
<ClInclude Include="game.h" />
<ClInclude Include="gameWorld.h" />

View File

@@ -47,5 +47,8 @@
<ClInclude Include="rect.h">
<Filter>headers</Filter>
</ClInclude>
<ClInclude Include="crumpet-engine.h">
<Filter>headers</Filter>
</ClInclude>
</ItemGroup>
</Project>

View File

@@ -1,7 +1,12 @@
#include "entity.h"
Entity::Entity(std::string name, Renderer* renderer) {
Entity::Entity(std::string name, Renderer* renderer)
: Pos(new Vec2(0, 0))
, Size(new Vec2(0, 0))
, m_col(new Vec4(0, 0, 0, 255))
, m_rect(new Rect(0, 0, 0, 0)) {
this->m_renderer = renderer;
this->m_name = name;
this->Rendertype = RenderType::MODE_TEXTURE;
}
@@ -47,8 +52,8 @@ bool Entity::LoadTexture(SDL_Surface* image) {
return true;
}
void Entity::SetDrawColour(Vec4 col) {
void Entity::SetDrawColour(Vec4* col) {
m_renderer->SetRendererColour(col);
}
void Entity::SetRect(Rect* rect) {

View File

@@ -1,13 +1,12 @@
#pragma once
#include <string>
#include <iostream>
#include <string>
#include <vector>
#include <SDL.h>
#include <SDL_image.h>
#include "renderer.h"
#include "rect.h"
#include "mathHelper.h"
#include "game.h"
enum struct RenderType {
MODE_DEFAULT,
@@ -33,7 +32,7 @@ public:
bool LoadTexture(std::string path);
bool LoadTexture(SDL_Surface* image);
void SetDrawColour(Vec4 col);
void SetDrawColour(Vec4* col);
void SetRect(Rect* rect);

View File

@@ -4,9 +4,6 @@
#include <SDL.h>
#include "renderer.h"
#include "camera.h"
#include "timer.h"
#include "entity.h"
#include "sprite.h"
class Game {
public:

View File

@@ -1,4 +1,4 @@
#include "game.h"
#include "crumpet-engine.h"
#undef main
@@ -7,16 +7,18 @@
int main(int argc, char** argv) {
Game game("Crumpet engine", SCREEN_WIDTH, SCREEN_HEIGHT, 0, 1000 / 60); // 1000 / 60);
Camera camera(SCREEN_WIDTH, SCREEN_HEIGHT);
game.camera = &camera;
Timer timer;
Sprite sans("sans", SpriteType::SPRITE_ANIMATED);
Sprite sans("sans", game.renderer, 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);
Sprite explosion("explosion", SpriteType::SPRITE_ANIMATED);
Sprite explosion("explosion", game.renderer ,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);
@@ -35,8 +37,6 @@ int main(int argc, char** argv) {
sans.Pos->x -= 10;
} else sans.Spritestate = SpriteState::STATE_FRONT;
if (timer.ticks % 5 == 0) {
sans.TickAninmation();
explosion.TickAninmation();
@@ -46,8 +46,8 @@ int main(int argc, char** argv) {
}
game.renderer->RenderClear();
game.renderer->RenderSprite(&sans);
game.renderer->RenderSprite(&explosion);
sans.Render();
explosion.Render();
game.renderer->RenderUpdate();
}

View File

@@ -1,10 +1,12 @@
#include "rect.h"
Rect::Rect() {
Rect::Rect()
: rect(new SDL_Rect{ 0, 0, 0, 0 }) {
Clear();
}
Rect::Rect(int x, int y, int w, int h) {
Rect::Rect(int x, int y, int w, int h)
: rect(new SDL_Rect{ x, y, w, h }) {
SetRect(x, y, w, h);
}
@@ -115,7 +117,15 @@ int Rect::Area() {
}
void Rect::SetRect(int x, int y, int w, int h) {
this->x = x;
this->y = y;
this->w = w;
this->h = h;
this->rect->x = x;
this->rect->y = y;
this->rect->w = w;
this->rect->h = h;
}
void Rect::SetSize(Vec2* size) {

View File

@@ -21,29 +21,16 @@ Renderer::Renderer(std::string title, int width, int height, int targetFramerate
isClosed = false;
}
void Renderer::RenderEntity(Entity* entity) {
entity->Render();
}
void Renderer::RenderSprite(Sprite* sprite, SpriteState state) {
sprite->Spritestate = state;
sprite->Render();
}
void Renderer::RenderSprite(Sprite* sprite) {
sprite->Render();
}
void Renderer::SetRendererColour(Vec4* col) {
SDL_SetRenderDrawColor(SDLRenderer, col->x, col->y, col->z, col->w);
}
void Renderer::RenderEmptyRect(Rect* rect) {
SDL_RenderDrawRect(SDLRenderer, rect->ToSDLRect);
SDL_RenderDrawRect(SDLRenderer, rect->ToSDLRect());
}
void Renderer::RenderFilledRect(Rect* rect) {
SDL_RenderFillRect(SDLRenderer, rect->ToSDLRect);
SDL_RenderFillRect(SDLRenderer, rect->ToSDLRect());
}
void Renderer::RenderLines(std::vector<Vec4*> points) {

View File

@@ -4,8 +4,6 @@
#include <string>
#include <vector>
#include <SDL.h>
#include "entity.h"
#include "sprite.h"
#include "rect.h"
class Renderer {
@@ -14,13 +12,7 @@ public:
SDL_Renderer *SDLRenderer;
void RenderEntity(Entity* entity);
void RenderSprite(Sprite* sprite, SpriteState state);
void RenderSprite(Sprite* sprite);
void SetRendererColour(Vec4* col);
void RenderEmptyRect(Rect* rect);
void RenderFilledRect(Rect* rect);
void RenderLines(std::vector<Vec4*> points);

View File

@@ -1,7 +1,8 @@
#include "sprite.h"
Sprite::Sprite(std::string name, Renderer* renderer, SpriteType mode)
: Entity(name, renderer) {
: Entity(name, renderer)
, Pos(new Vec2(0, 0)) {
this->Spritetype = mode;
}

View File

@@ -38,7 +38,7 @@ enum struct SpriteState {
class Sprite : public Entity {
public:
Sprite(std::string name, Renderer* renderer, SpriteType mode);
SpriteType Spritetype = SpriteType::SPRITE_DEFAULT;
SpriteState Spritestate = SpriteState::STATE_DEFAULT;
@@ -51,7 +51,7 @@ public:
void ResizeSpritesByFactor(float factor);
void ResizeSpriteState(SpriteState state, Vec2* newSize);
void ResizeSpriteStateByFactor(SpriteState state, float factor);
void Move(Vec2* offest);
void MoveX(int offest);
void MoveY(int offest);
@@ -61,11 +61,11 @@ public:
virtual ~Sprite();
private:
std::map <SpriteState, std::map<int, Rect*>> m_spriteMaps;
std::map <SpriteState, Vec2*> m_spriteSize;
std::map<SpriteState, std::map<int, Rect*>> m_spriteMaps;
std::map<SpriteState, Vec2*> m_spriteSize;
SDL_Texture* m_spriteSheetTexture;
SpriteState m_lastSpritestate = SpriteState::STATE_DEFAULT;
int m_spriteSheetW;
int m_spriteSheetH;