(BROKEN) finished refractor, weird compiler and intelisense bugs, not sure what's wrong
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -42,4 +42,3 @@ private:
|
||||
SDL_Window *m_window;
|
||||
bool isClosed;
|
||||
};
|
||||
|
||||
|
||||
@@ -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, ¤tFrameDest);
|
||||
m_renderer->RenderTexture(currentFrameClip, ¤tFrameDest, m_spriteSheetTexture);
|
||||
}
|
||||
|
||||
Sprite::~Sprite() {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user