Browse Source

less flickering

Kajetan Johannes Hammerle 3 years ago
parent
commit
dffc482653
1 changed files with 5 additions and 7 deletions
  1. 5 7
      Game.cpp

+ 5 - 7
Game.cpp

@@ -30,8 +30,7 @@ void Game::render(float lag) {
     GL::setViewport(64, 64);
     noiceShader.use();
     noiceBuffer.bindAndClear();
-    float interHeight = Utils::interpolate(oldHeight, height, lag);
-    noiceShader.setFloat("height", interHeight * 0.005f);
+    noiceShader.setFloat("height", oldHeight * 0.5);
     for(int i = 0; i < 64; i++) {
         noiceShader.setFloat("layer", i * (1.0f / 63.0f));
         noiceBuffer.bindLayer(i);
@@ -48,9 +47,8 @@ void Game::render(float lag) {
     Matrix m;
     m.translate(interPos);
     m.translateZ(-32.0f);
-    m.translateY(-32.0f);
+    m.translateY(-32.0f + (height - oldHeight) * lag);
     m.translateX(-32.0f);
-
     shader.setMatrix("view", m.getValues());
 
     if(toggle.isDown()) {
@@ -65,13 +63,13 @@ void Game::render(float lag) {
 void Game::tick() {
     oldHeight = height;
     oldPosition = position;
-    const float speed = 2.5f;
     if(up.isDown()) {
-        height += speed;
+        height -= 1.0f;
     }
     if(down.isDown()) {
-        height -= speed;
+        height += 1.0f;
     }
+    const float speed = 2.5f;
     if(left.isDown()) {
         position += Vector3(speed, 0.0f, 0.0f);
     }