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