Game.cpp 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #include "client/Game.h"
  2. #include "client/utils/Utils.h"
  3. #include "rendering/Renderer.h"
  4. #include "common/utils/String.h"
  5. Game::Game(const Control& control, const Camera& camera, Ray& ray, const Clock& fps, const Clock& tps,
  6. RenderSettings& renderSettings) :
  7. control(control), camera(camera), ray(ray), fps(fps), tps(tps), renderSettings(renderSettings), lengthAngle(20.0f),
  8. widthAngle(35.0f), world(blockRegistry), worldRenderer(world) {
  9. pos.set(0, 10, 0);
  10. }
  11. void Game::tick() {
  12. const float speed = 0.25f;
  13. if(control.keys.down.isDown()) {
  14. pos.addMul(camera.getFlatBack(), speed);
  15. }
  16. if(control.keys.up.isDown()) {
  17. pos.addMul(camera.getFlatBack(), -speed);
  18. }
  19. if(control.keys.left.isDown()) {
  20. pos.addMul(camera.getFlatRight(), -speed);
  21. }
  22. if(control.keys.right.isDown()) {
  23. pos.addMul(camera.getFlatRight(), speed);
  24. }
  25. if(control.keys.jump.isDown()) {
  26. pos.addMul(camera.getFlatUp(), speed);
  27. }
  28. if(control.keys.sneak.isDown()) {
  29. pos.addMul(camera.getFlatUp(), -speed);
  30. }
  31. const float rotation = 5.0f;
  32. if(control.keys.camLeft.isDown()) {
  33. lengthAngle += rotation;
  34. }
  35. if(control.keys.camRight.isDown()) {
  36. lengthAngle -= rotation;
  37. }
  38. if(control.keys.camUp.isDown() && widthAngle - rotation > -90.0f) {
  39. widthAngle -= rotation;
  40. }
  41. if(control.keys.camDown.isDown() && widthAngle + rotation < 90.0f) {
  42. widthAngle += rotation;
  43. }
  44. ray.store();
  45. ray.set(pos, lengthAngle, widthAngle);
  46. if(control.keys.test5.getDownTime() == 1) {
  47. renderSettings.ssao = !renderSettings.ssao;
  48. }
  49. /*if(control.keys.test.isDown()) {
  50. renderSettings.testRadius /= 0.95f;
  51. }
  52. if(control.keys.test2.isDown()) {
  53. renderSettings.testRadius *= 0.95f;
  54. }
  55. if(control.keys.test3.isDown()) {
  56. renderSettings.testBias /= 0.95f;
  57. }
  58. if(control.keys.test4.isDown()) {
  59. renderSettings.testBias *= 0.95f;
  60. }*/
  61. }
  62. void Game::renderWorld(float lag, Renderer& renderer) const {
  63. worldRenderer.render(lag, renderer);
  64. }
  65. void Game::renderTextOverlay(float lag, Renderer& renderer, FontRenderer& fr) const {
  66. (void) lag;
  67. renderer.scale(1.0f).update();
  68. String s;
  69. s.append("FPS: ").append(fps.getUpdatesPerSecond());
  70. fr.drawString(10, 10, s);
  71. s.clear().append("TPS: ").append(tps.getUpdatesPerSecond());
  72. fr.drawString(10, 20, s);
  73. s.clear().append("Bias: ").append("%.6f", renderSettings.testBias);
  74. fr.drawString(10, 30, s);
  75. s.clear().append("Radius: ").append("%.6f", renderSettings.testRadius);
  76. fr.drawString(10, 40, s);
  77. s.clear().append("Shadows: ").append(renderSettings.shadows);
  78. fr.drawString(10, 50, s);
  79. }
  80. bool Game::isRunning() const {
  81. return true;
  82. }