Added Screens
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
|
||||
#include <GL/glew.h>
|
||||
#include <iostream>
|
||||
#include <entityx/entityx.h>
|
||||
#include "screens/GameScreen.h"
|
||||
|
||||
DarkRP2D::~DarkRP2D() {
|
||||
std::cout << "Game got destroyed!" << std::endl;
|
||||
@@ -15,15 +15,14 @@ DarkRP2D::~DarkRP2D() {
|
||||
ImGui_ImplSdlGL3_Shutdown();
|
||||
ImGui::DestroyContext();
|
||||
#endif
|
||||
delete gameScreen;
|
||||
delete assets;
|
||||
delete obj;
|
||||
delete inputHandler;
|
||||
delete camera;
|
||||
delete renderer;
|
||||
}
|
||||
|
||||
void DarkRP2D::create () {
|
||||
std::cout << "Hello World!" << std::endl;
|
||||
std::cout << "Game got created!" << std::endl;
|
||||
assets = new Assets();
|
||||
assets->loadTexture("police_officer.png",true,"police_officer");
|
||||
assets->loadShader("vert.shader","frag.shader",nullptr,"defaultShader");
|
||||
@@ -31,26 +30,11 @@ void DarkRP2D::create () {
|
||||
|
||||
renderer = new Renderer();
|
||||
|
||||
std::vector<Vertex2D> vertices({
|
||||
Vertex2D{glm::vec2(-0.5f,-0.5f), glm::vec2(0.0f,1.0f)},
|
||||
Vertex2D{glm::vec2(0.5f,-0.5f), glm::vec2(1.0f,1.0f)},
|
||||
Vertex2D{glm::vec2(0.5f,0.5f), glm::vec2(1.0f,0.0f)},
|
||||
Vertex2D{glm::vec2(-0.5f,0.5f), glm::vec2(0.0f,0.0f)}
|
||||
});
|
||||
std::vector<unsigned int> indices({
|
||||
0,1,3,
|
||||
1,2,3
|
||||
});
|
||||
|
||||
obj = new Mesh(vertices,indices,assets->getTexture("police_officer"));
|
||||
inputHandler = new InputHandler();
|
||||
font = new BitmapFont("arial.ttf");
|
||||
|
||||
camera = new OrtographicCamera();
|
||||
|
||||
entityx::EntityX ex;
|
||||
entityx::Entity charakter = ex.entities.create();
|
||||
charakter.assign<Position>();
|
||||
gameScreen = new GameScreen(renderer,assets);
|
||||
gameScreen->show();
|
||||
|
||||
#ifndef NDEBUG
|
||||
//Setup IMGUI debugging
|
||||
@@ -89,8 +73,7 @@ void DarkRP2D::update(unsigned int delta) {
|
||||
command->execute();
|
||||
}
|
||||
}
|
||||
|
||||
//camera update
|
||||
gameScreen->update();
|
||||
}
|
||||
|
||||
#ifndef NDEBUG
|
||||
@@ -105,16 +88,11 @@ void DarkRP2D::render(unsigned int delta) {
|
||||
ImGui_ImplSdlGL3_NewFrame(gWindow);
|
||||
#endif
|
||||
|
||||
//Drawing
|
||||
Shader defaultShader = assets->getShader("defaultShader");
|
||||
defaultShader.SetMatrix4("MVP",camera->getCombinedMatrix(),true);
|
||||
//Draw Mesh
|
||||
renderer->draw(*obj,defaultShader);
|
||||
|
||||
//texttest
|
||||
Shader bitmapShader = assets->getShader("bitmapShader");
|
||||
font->drawText(bitmapShader, "Hallo du noob", 25.0f, 25.0f, 1.f, glm::vec3(0.5f,0.8f,0.2f));
|
||||
|
||||
gameScreen->render();
|
||||
|
||||
#ifndef NDEBUG
|
||||
// 1. Show a simple window.
|
||||
@@ -135,6 +113,7 @@ void DarkRP2D::render(unsigned int delta) {
|
||||
ImGui::Render();
|
||||
ImGui_ImplSdlGL3_RenderDrawData(ImGui::GetDrawData());
|
||||
#endif
|
||||
|
||||
SDL_GL_SwapWindow(gWindow);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,20 +8,18 @@ class DarkRP2D;
|
||||
|
||||
#include "Assets.h"
|
||||
#include "Renderer.h"
|
||||
#include "Mesh.h"
|
||||
#include "input/InputHandler.h"
|
||||
#include "BitmapFont.h"
|
||||
#include "Camera.h"
|
||||
#include "screens/Screen.h"
|
||||
|
||||
class DarkRP2D {
|
||||
private:
|
||||
SDL_Window* gWindow;
|
||||
Assets *assets;
|
||||
Renderer* renderer;
|
||||
Mesh *obj;
|
||||
InputHandler *inputHandler;
|
||||
BitmapFont *font;
|
||||
OrtographicCamera *camera;
|
||||
Screen *gameScreen;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
@@ -1,7 +1,38 @@
|
||||
#include "GameScreen.h"
|
||||
#include <entityx/entityx.h>
|
||||
|
||||
GameScreen::GameScreen() {
|
||||
#include <iostream>
|
||||
|
||||
GameScreen::GameScreen(Renderer* renderer, Assets* assets) {
|
||||
std::cout << "GameScreen got created!" << std::endl;
|
||||
this->renderer = renderer;
|
||||
this->assets = assets;
|
||||
|
||||
std::vector<Vertex2D> vertices({
|
||||
Vertex2D{glm::vec2(-0.5f,-0.5f), glm::vec2(0.0f,1.0f)},
|
||||
Vertex2D{glm::vec2(0.5f,-0.5f), glm::vec2(1.0f,1.0f)},
|
||||
Vertex2D{glm::vec2(0.5f,0.5f), glm::vec2(1.0f,0.0f)},
|
||||
Vertex2D{glm::vec2(-0.5f,0.5f), glm::vec2(0.0f,0.0f)}
|
||||
});
|
||||
|
||||
std::vector<unsigned int> indices({
|
||||
0,1,3,
|
||||
1,2,3
|
||||
});
|
||||
|
||||
obj = new Mesh(vertices,indices,assets->getTexture("police_officer"));
|
||||
|
||||
camera = new OrtographicCamera();
|
||||
|
||||
//Create Entities
|
||||
//entityx::EntityX ex;
|
||||
//entityx::Entity charakter = ex.entities.create();
|
||||
//charakter.assign<Position>();
|
||||
}
|
||||
|
||||
GameScreen::~GameScreen() {
|
||||
delete camera;
|
||||
delete obj;
|
||||
}
|
||||
|
||||
void GameScreen::hide() {
|
||||
@@ -13,6 +44,14 @@ void GameScreen::pause() {
|
||||
}
|
||||
|
||||
void GameScreen::render() {
|
||||
//Drawing
|
||||
Shader defaultShader = assets->getShader("defaultShader");
|
||||
defaultShader.SetMatrix4("MVP",camera->getCombinedMatrix(),true);
|
||||
//Draw Mesh
|
||||
renderer->draw(*obj,defaultShader);
|
||||
}
|
||||
|
||||
void GameScreen::update() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -2,16 +2,30 @@
|
||||
#define GAMESCREEN_H
|
||||
|
||||
#include "Screen.h"
|
||||
#include "../Renderer.h"
|
||||
#include "../Assets.h"
|
||||
#include "../Mesh.h"
|
||||
#include "../Camera.h"
|
||||
|
||||
class GameScreen : public Screen {
|
||||
GameScreen() {}
|
||||
public:
|
||||
GameScreen(Renderer* renderer, Assets* assets);
|
||||
~GameScreen();
|
||||
|
||||
virtual void hide() override;
|
||||
virtual void pause() override;
|
||||
virtual void render() override;
|
||||
virtual void update() override;
|
||||
virtual void resize() override;
|
||||
virtual void resume() override;
|
||||
virtual void show() override;
|
||||
|
||||
private:
|
||||
Renderer* renderer;
|
||||
Assets* assets;
|
||||
|
||||
OrtographicCamera *camera;
|
||||
Mesh *obj;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -12,6 +12,7 @@ class Screen {
|
||||
virtual void hide() = 0;
|
||||
virtual void pause() = 0;
|
||||
virtual void render() = 0;
|
||||
virtual void update() = 0;
|
||||
virtual void resize() = 0;
|
||||
virtual void resume() = 0;
|
||||
virtual void show() = 0;
|
||||
|
||||
Reference in New Issue
Block a user