|
@@ -30,9 +30,10 @@ void Game::render(float lag) {
|
|
|
GL::setViewport(64, 64);
|
|
|
noiceShader.use();
|
|
|
noiceBuffer.bindAndClear();
|
|
|
- noiceShader.setFloat("height", oldHeight * 0.5);
|
|
|
+ float step = 1.0f / 31.5f;
|
|
|
+ noiceShader.setFloat("height", oldHeight * step);
|
|
|
for(int i = 0; i < 64; i++) {
|
|
|
- noiceShader.setFloat("layer", i * (1.0f / 63.0f));
|
|
|
+ noiceShader.setFloat("layer", i * step - 1.0f);
|
|
|
noiceBuffer.bindLayer(i);
|
|
|
rectangleBuffer.draw(6);
|
|
|
}
|
|
@@ -41,13 +42,12 @@ void Game::render(float lag) {
|
|
|
shader.use();
|
|
|
GL::bindMainFramebuffer();
|
|
|
GL::clear();
|
|
|
- Vector3 interPos = Utils::interpolate(oldPosition, position, lag);
|
|
|
shader.setMatrix("proj", frustum.updateProjection().getValues());
|
|
|
|
|
|
Matrix m;
|
|
|
- m.translate(interPos);
|
|
|
+ m.translate(Utils::interpolate(oldPosition, position, lag));
|
|
|
m.translateZ(-32.0f);
|
|
|
- m.translateY(-32.0f + (height - oldHeight) * lag);
|
|
|
+ m.translateY(-32.0f + (oldHeight - height) * lag);
|
|
|
m.translateX(-32.0f);
|
|
|
shader.setMatrix("view", m.getValues());
|
|
|
|
|
@@ -63,10 +63,10 @@ void Game::tick() {
|
|
|
oldHeight = height;
|
|
|
oldPosition = position;
|
|
|
if(up.isDown()) {
|
|
|
- height -= 1.0f;
|
|
|
+ height -= 1.0;
|
|
|
}
|
|
|
if(down.isDown()) {
|
|
|
- height += 1.0f;
|
|
|
+ height += 1.0;
|
|
|
}
|
|
|
const float speed = 2.5f;
|
|
|
if(left.isDown()) {
|