Added camera operations and better input handling

This commit is contained in:
Julian Nießner
2018-05-07 16:58:15 +02:00
parent 1039a0fdb6
commit 51eff2d983
9 changed files with 118 additions and 27 deletions

View File

@@ -8,6 +8,7 @@ DarkRP2D::~DarkRP2D() {
delete assets;
delete obj;
delete inputHandler;
delete camera;
}
void DarkRP2D::create () {
@@ -32,17 +33,19 @@ void DarkRP2D::create () {
inputHandler = new InputHandler();
font = new BitmapFont("arial.ttf");
camera = new OrtographicCamera();
glClearColor(1.f,1.f,1.f,1.f);
}
void DarkRP2D::loop(SDL_Event *event, unsigned int delta) {
void DarkRP2D::loop(unsigned int delta) {
static unsigned int accumulator = 0, ups = 0, fps = 0, acc = 0;
accumulator += delta;
acc += delta;
while(accumulator >= 17) {
accumulator -= 17;
update(event, delta);
update(delta);
ups++;
}
@@ -56,8 +59,16 @@ void DarkRP2D::loop(SDL_Event *event, unsigned int delta) {
fps++;
}
void DarkRP2D::update(SDL_Event *event, unsigned int delta) {
inputHandler->handleInput(event);
void DarkRP2D::update(unsigned int delta) {
SDL_Event event;
while(SDL_PollEvent(&event) != 0) {
Command* command = inputHandler->handleInput(&event);
if (command) {
command->execute();
}
}
//camera update
}
void DarkRP2D::render(unsigned int delta) {
@@ -65,10 +76,11 @@ void DarkRP2D::render(unsigned int delta) {
//Drawing
Shader defaultShader = assets->getShader("defaultShader");
defaultShader.Use();
//Draw Triangle
defaultShader.SetMatrix4("view",camera->getViewMatrix(),true);
defaultShader.SetMatrix4("projection",camera->getProjectionMatrix(),true);
//Draw Mesh
obj->draw();
//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));