12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #include "client/Game.h"
- #include "gaming-core/utils/Utils.h"
- Game::Game(const Control& control, const Clock& fps, const Clock& tps, RenderSettings& settings, const Size& size) :
- control(control), fps(fps), tps(tps), renderSettings(settings), size(size), world(blockRegistry), worldRenderer(world) {
- pos = Vector3(16.0f, 24.0f, 0.0f);
- }
- void Game::tick() {
- lastRotation = rotation;
- lastPos = pos;
- Vector3 right = rotation * Vector3(1.0f, 0.0f, 0.0f);
- Vector3 up = rotation * Vector3(0.0f, 1.0f, 0.0f);
- Vector3 back = rotation * Vector3(0.0f, 0.0f, -1.0f);
- const float speed = 1.0f;
- if(control.keys.down.isDown()) {
- pos += back * speed;
- }
- if(control.keys.up.isDown()) {
- pos -= back * speed;
- }
- if(control.keys.left.isDown()) {
- pos -= right * speed;
- }
- if(control.keys.right.isDown()) {
- pos += right * speed;
- }
- if(control.keys.jump.isDown()) {
- pos += up * speed;
- }
- if(control.keys.sneak.isDown()) {
- pos -= up * speed;
- }
- const float rotationSpeed = 5.0f;
- if(control.keys.camLeft.isDown()) {
- rotation = Quaternion(up, -rotationSpeed) * rotation;
- }
- if(control.keys.camRight.isDown()) {
- rotation = Quaternion(up, rotationSpeed) * rotation;
- }
- if(control.keys.camUp.isDown()) {
- rotation = Quaternion(right, -rotationSpeed) * rotation;
- }
- if(control.keys.camDown.isDown()) {
- rotation = Quaternion(right, rotationSpeed) * rotation;
- }
- }
- void Game::renderWorld(float lag, Renderer& renderer) {
- renderer.update(Utils::interpolate(lastPos, pos, lag), lastRotation.lerp(lag, rotation));
- worldRenderer.render(lag, renderer);
- }
- void Game::renderTextOverlay(float lag, Renderer& renderer, FontRenderer& fr) {
- (void) lag;
- renderer.scale(2.0f).update();
- StringBuffer<100> s;
- s.append("FPS: ").append(fps.getUpdatesPerSecond()).append(" TPS: ").append(tps.getUpdatesPerSecond());
- fr.drawString(10, 10, s);
- }
- bool Game::isRunning() const {
- return true;
- }
|