(BROKEN) finished refractor, weird compiler and intelisense bugs, not sure what's wrong

This commit is contained in:
Ben
2018-10-09 09:09:33 +01:00
parent f6e42e5f72
commit 725536a4c3
6 changed files with 35 additions and 40 deletions

View File

@@ -1,12 +1,12 @@
#include "entity.h"
Entity::Entity(std::string name) {
Entity::Entity(std::string name, Renderer* renderer) {
this->m_name = name;
this->Rendertype = RenderType::MODE_TEXTURE;
}
Entity::Entity(std::string name, PolyDrawType drawType) {
Entity::Entity(std::string name, Renderer* renderer, PolyDrawType drawType) {
this->m_name = name;
this->Drawtype = drawType;
@@ -20,7 +20,7 @@ bool Entity::LoadTexture(std::string path) {
return false;
}
m_texture = SDL_CreateTextureFromSurface(m_SDLRenderer, loadedSurface);
m_texture = SDL_CreateTextureFromSurface(m_renderer->SDLRenderer, loadedSurface);
if (m_texture == NULL) {
std::cout << "Unable to create texture from:" << (PATH + path).c_str() << " SDL ERROR: " << SDL_GetError() << std::endl;
return false;
@@ -29,15 +29,15 @@ bool Entity::LoadTexture(std::string path) {
this->m_textureW = loadedSurface->w;
this->m_textureH = loadedSurface->h;
this->Size.x = loadedSurface->w;
this->Size.y = loadedSurface->h;
this->Size->x = loadedSurface->w;
this->Size->y = loadedSurface->h;
SDL_FreeSurface(loadedSurface);
return true;
}
bool Entity::LoadTexture(SDL_Surface* image) {
m_texture = SDL_CreateTextureFromSurface(m_SDLRenderer, image);
m_texture = SDL_CreateTextureFromSurface(m_renderer->SDLRenderer, image);
if (m_texture == NULL) {
std::cout << "Unable to create texture SDL ERROR: " << SDL_GetError() << std::endl;
return false;
@@ -65,22 +65,19 @@ void Entity::AddVecPoint(Vec4* point) {
void Entity::Render() {
if (Rendertype == RenderType::MODE_TEXTURE) {
SDL_Rect renderQuad = { Pos.x, Pos.y, Size.x, Size.y };
SDL_RenderCopy(m_SDLRenderer, m_texture, NULL, &renderQuad);
Rect renderQuad(Pos->x, Pos->y, Size->x, Size->y);
m_renderer->RenderTexture(m_rect, &renderQuad, m_texture);
}
if (Rendertype == RenderType::MODE_POLYGON) {
SDL_SetRenderDrawColor(m_SDLRenderer, m_col.x, m_col.y, m_col.z, m_col.w);
m_renderer->SetRendererColour(m_col);
if (Drawtype == PolyDrawType::DRAW_FILLED_RECT)
SDL_RenderFillRect(m_SDLRenderer, &m_rect);
m_renderer->RenderFilledRect(m_rect);
if (Drawtype == PolyDrawType::DRAW_OUTLINE_RECT)
SDL_RenderDrawRect(m_SDLRenderer, &m_rect);
m_renderer->RenderEmptyRect(m_rect);
if (Drawtype == PolyDrawType::DRAW_LINES) {
for (unsigned int i = 0; i < m_linePoints.size(); i++) {
SDL_RenderDrawLine(m_SDLRenderer, m_linePoints[i].x, m_linePoints[i].y, m_linePoints[i].z, m_linePoints[i].w);
}
m_renderer->RenderLines(m_linePoints);
}
}
}

View File

@@ -5,6 +5,7 @@
#include <vector>
#include <SDL.h>
#include <SDL_image.h>
#include "renderer.h"
#include "rect.h"
#include "mathHelper.h"
@@ -22,9 +23,9 @@ enum struct PolyDrawType {
};
class Entity {
public:
Entity(std::string name); // Texture overload
Entity(std::string name, PolyDrawType drawType); // Polygon overload
public:
Entity(std::string name, Renderer* renderer); // Texture overload
Entity(std::string name, Renderer* renderer, PolyDrawType drawType); // Polygon overload
RenderType Rendertype = RenderType::MODE_DEFAULT;
PolyDrawType Drawtype = PolyDrawType::DRAW_DEFAULT;
@@ -46,6 +47,7 @@ public:
virtual ~Entity();
protected:
Renderer* m_renderer;
std::string PATH = "C:/Users/Ben/Desktop/crumpet-engine";
// std::string PATH = "E:/Games/crumpet-engine";
private:
@@ -57,5 +59,5 @@ private:
std::vector<Vec4*> m_linePoints;
SDL_Texture* m_texture;
int m_textureW;
int m_textureH
int m_textureH;
};

View File

@@ -34,7 +34,9 @@ int main(int argc, char** argv) {
sans.Spritestate = SpriteState::STATE_LEFT;
sans.Pos->x -= 10;
} else sans.Spritestate = SpriteState::STATE_FRONT;
if (timer.ticks % 5 == 0) {
sans.TickAninmation();
explosion.TickAninmation();

View File

@@ -42,4 +42,3 @@ private:
SDL_Window *m_window;
bool isClosed;
};

View File

@@ -1,7 +1,7 @@
#include "sprite.h"
Sprite::Sprite(std::string name, SDL_Renderer* SDLRenderer, SpriteType mode)
: Entity(name) {
Sprite::Sprite(std::string name, Renderer* renderer, SpriteType mode)
: Entity(name, renderer) {
this->Spritetype = mode;
}
@@ -14,7 +14,7 @@ bool Sprite::LoadSpriteTextures(std::string path) {
}
this->m_spriteSheetW = loadedSurface->w;
this->m_spriteSheetH = loadedSurface->h;
m_spriteSheetTexture = SDL_CreateTextureFromSurface(m_SDLRenderer, loadedSurface);
m_spriteSheetTexture = SDL_CreateTextureFromSurface(m_renderer->SDLRenderer, loadedSurface);
SDL_FreeSurface(loadedSurface);
return true;
@@ -24,14 +24,14 @@ void Sprite::UseSpriteSheet(SpriteState state, int startX, int startY, int width
for (int i = 1; i <= frames; i++) {
if (i == 1) {
std::cout << startX << " " << startY << " " << width << " " << i << std::endl;
SDL_Rect temp1 = { startX, startY, width, height };
SDL_Rect* temp = new SDL_Rect(temp1);
Rect temp1 = { startX, startY, width, height };
Rect* temp = new Rect(temp1);
m_spriteMaps[state][i] = temp;
} else {
int x = (width * i) + startX + (separation * i - separation) - width;
std::cout << x << " " << startY << " " << width << " " << i << std::endl;
SDL_Rect temp1 = { x, startY, width, height };
SDL_Rect* temp = new SDL_Rect(temp1);
Rect temp1 = { x, startY, width, height };
Rect* temp = new Rect(temp1);
m_spriteMaps[state][i] = temp;
}
}
@@ -84,16 +84,16 @@ void Sprite::ResizeSpriteStateByFactor(SpriteState state, float factor) {
}
void Sprite::Move(Vec2* offset) {
Pos.x += offset->x;
Pos.y += offset->y;
Pos->x += offset->x;
Pos->y += offset->y;
}
void Sprite::Render() {
SDL_Rect* currentFrameClip = m_spriteMaps[Spritestate][m_currentFrame];
Rect* currentFrameClip = m_spriteMaps[Spritestate][m_currentFrame];
Vec2* currentRenderSize = m_spriteSize[Spritestate];
SDL_Rect currentFrameDest = { Pos.x, Pos.y, currentRenderSize->x, currentRenderSize->y};
Rect currentFrameDest(Pos->x, Pos->y, currentRenderSize->x, currentRenderSize->y);
SDL_RenderCopy(m_SDLRenderer, m_spriteSheetTexture, currentFrameClip, &currentFrameDest);
m_renderer->RenderTexture(currentFrameClip, &currentFrameDest, m_spriteSheetTexture);
}
Sprite::~Sprite() {

View File

@@ -1,11 +1,6 @@
#pragma once
#include <string>
#include <iostream>
#include <vector>
#include <map>
#include <SDL.h>
#include <SDL_image.h>
#include "entity.h"
enum struct SpriteType {
@@ -42,7 +37,7 @@ enum struct SpriteState {
class Sprite : public Entity {
public:
Sprite(std::string name, SpriteType mode);
Sprite(std::string name, Renderer* renderer, SpriteType mode);
SpriteType Spritetype = SpriteType::SPRITE_DEFAULT;
SpriteState Spritestate = SpriteState::STATE_DEFAULT;
@@ -66,7 +61,7 @@ public:
virtual ~Sprite();
private:
std::map <SpriteState, std::map<int, SDL_Rect*>> m_spriteMaps;
std::map <SpriteState, std::map<int, Rect*>> m_spriteMaps;
std::map <SpriteState, Vec2*> m_spriteSize;
SDL_Texture* m_spriteSheetTexture;