123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- #include "Client.h"
- #include "../engine/GameEngine.h"
- #include <cmath>
- Client* Client::instance;
- void Client::start()
- {
- GameEngine::start(1024, 620, "Test Game", []()
- {
- Client::instance = new Client();
- }, []()
- {
- Client::instance->tick();
- }, [](float lag)
- {
- Client::instance->renderTick(lag);
- });
- delete instance;
- }
- void Client::stop()
- {
- GameEngine::stop();
- }
- Client::Client() : chunk(0, 0), texture("resources/textures.png")
- {
- //chunk.init();
-
- position.set(0, 0, -2);
- GameEngine::get()->getShader().setCamera(position.getX(), position.getY(), position.getZ(), 0, 0);
- GameEngine::get()->getShader().storeCamera();
-
- GameEngine::get()->getKeyManager().map(KEY_LEFT, GLFW_KEY_A);
- GameEngine::get()->getKeyManager().map(KEY_RIGHT, GLFW_KEY_D);
- GameEngine::get()->getKeyManager().map(KEY_UP, GLFW_KEY_W);
- GameEngine::get()->getKeyManager().map(KEY_DOWN, GLFW_KEY_S);
- GameEngine::get()->getKeyManager().map(KEY_JUMP, GLFW_KEY_SPACE);
- GameEngine::get()->getKeyManager().map(KEY_SNEAK, GLFW_KEY_LEFT_SHIFT);
- GameEngine::get()->getKeyManager().map(KEY_CAM_LEFT, GLFW_KEY_H);
- GameEngine::get()->getKeyManager().map(KEY_CAM_RIGHT, GLFW_KEY_K);
- GameEngine::get()->getKeyManager().map(KEY_CAM_UP, GLFW_KEY_U);
- GameEngine::get()->getKeyManager().map(KEY_CAM_DOWN, GLFW_KEY_J);
- }
- Client::~Client()
- {
- }
- float oldTicker = 0;
- float ticker = 0;
- void Client::tick()
- {
- oldTicker = ticker;
- ticker += 1;
- if(ticker >= 360)
- {
- oldTicker = 0;
- ticker = 0;
- }
-
- Shader& c = GameEngine::get()->getShader();
- c.storeCamera();
-
- KeyManager& key = GameEngine::get()->getKeyManager();
-
- float factor = 0.125f;
- if(key.isDown(KEY_LEFT))
- {
- position.addMul(c.getLeft(), factor);
- }
- if(key.isDown(KEY_RIGHT))
- {
- position.addMul(c.getRight(), factor);
- }
- if(key.isDown(KEY_UP))
- {
- position.addMul(c.getFront(), factor);
- }
- if(key.isDown(KEY_DOWN))
- {
- position.addMul(c.getBack(), factor);
- }
- if(key.isDown(KEY_JUMP))
- {
- position.addMul(c.getUp(), factor);
- }
- if(key.isDown(KEY_SNEAK))
- {
- position.addMul(c.getDown(), factor);
- }
-
- if(key.isDown(KEY_CAM_LEFT))
- {
- lengthAngle += 2;
- }
- if(key.isDown(KEY_CAM_RIGHT))
- {
- lengthAngle -= 2;
- }
- if(key.isDown(KEY_CAM_UP))
- {
- widthAngle += 2;
- }
- if(key.isDown(KEY_CAM_DOWN))
- {
- widthAngle -= 2;
- }
-
- c.setCamera(position.getX(), position.getY(), position.getZ(), lengthAngle, widthAngle);
- }
- void Client::renderTick(float lag)
- {
- /*GameEngine::getCamera().updateView(lag);
- texture.bind();
- GameEngine::setColorEnabled(false);
- GameEngine::setUseBlending(false);
- GameEngine::setTextureEnabled(true);
- chunk.renderTick(lag);*/
-
- GameEngine::get()->getShader().set2DMode();
- GameEngine::get()->getShader().setToIdentity();
- GameEngine::get()->getShader().translateTo(200, 200, 0);
- GameEngine::get()->getShader().rotateZ(interpolate(lag, oldTicker, ticker));
- GameEngine::get()->getShader().updateModelMatrix();
- GameEngine::get()->getShader().setTextMode();
- string wusi;
- float y = 30;
- wusi = "FPS: " + to_string(GameEngine::get()->getFramesPerSecond());
- y = GameEngine::get()->getDirectRenderer().drawString(30, y, true, wusi);
- }
|