|
@@ -23,59 +23,60 @@ Game::Game() : lengthAngle(0.0f), widthAngle(0.0f), texture("resources/textures.
|
|
|
|
|
|
void Game::addCube(float x, float y, float z)
|
|
|
{
|
|
|
+ const float ERROR = 1.0f / 1024.0f;
|
|
|
// bottom
|
|
|
- m.add({x, y, z, 0.125f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x + 1, y, z, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x, y, z + 1, 0.125f, 0.0625f, 1, 0, 0});
|
|
|
+ m.add({x - ERROR, y - ERROR, z - ERROR, 0.125f, 0.0f, 0, -1, 0});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0f, 0, -1, 0});
|
|
|
+ m.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.125f, 0.0625f, 0, -1, 0});
|
|
|
|
|
|
- m.add({x + 1, y, z, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x + 1, y, z + 1, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x, y, z + 1, 0.125f, 0.0625f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0f, 0, -1, 0});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.1875f, 0.0625f, 0, -1, 0});
|
|
|
+ m.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.125f, 0.0625f, 0, -1, 0});
|
|
|
|
|
|
// top
|
|
|
- m.add({x, y + 1, z, 0.25f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z + 1, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x + 1, y + 1, z, 0.3125f, 0.0f, 1, 0, 0});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 0, 1, 0});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.25f, 0.0625f, 0, 1, 0});
|
|
|
+ m.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.3125f, 0.0f, 0, 1, 0});
|
|
|
|
|
|
- m.add({x + 1, y + 1, z, 0.3125f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z + 1, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x + 1, y + 1, z + 1, 0.3125f, 0.0625f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.3125f, 0.0f, 0, 1, 0});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.25f, 0.0625f, 0, 1, 0});
|
|
|
+ m.add({x + 1 + ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.3125f, 0.0625f, 0, 1, 0});
|
|
|
|
|
|
// left
|
|
|
- m.add({x, y, z, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x, y, z + 1, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
+ m.add({x - ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0625f, -1, 0, 0});
|
|
|
+ m.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.25f, 0.0625f, -1, 0, 0});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.1875f, 0.0f, -1, 0, 0});
|
|
|
|
|
|
- m.add({x, y, z + 1, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z + 1, 0.25f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
+ m.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.25f, 0.0625f, -1, 0, 0});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.25f, 0.0f, -1, 0, 0});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.1875f, 0.0f, -1, 0, 0});
|
|
|
|
|
|
// right
|
|
|
- m.add({x + 1, y, z, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x + 1, y + 1, z, 0.25f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x + 1, y, z + 1, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
|
|
|
- m.add({x + 1, y, z + 1, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x + 1, y + 1, z, 0.25f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x + 1, y + 1, z + 1, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
|
|
|
// front
|
|
|
- m.add({x, y, z + 1, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x + 1, y, z + 1, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z + 1, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
+ m.add({x - ERROR, y - ERROR, z + 1 + ERROR, 0.1875f, 0.0625f, 0, 0, 1});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.25f, 0.0625f, 0, 0, 1});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.1875f, 0.0f, 0, 0, 1});
|
|
|
|
|
|
- m.add({x + 1, y + 1, z + 1, 0.25f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z + 1, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x + 1, y, z + 1, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.25f, 0.0f, 0, 0, 1});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z + 1 + ERROR, 0.1875f, 0.0f, 0, 0, 1});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z + 1 + ERROR, 0.25f, 0.0625f, 0, 0, 1});
|
|
|
|
|
|
// back
|
|
|
- m.add({x, y, z, 0.25f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z, 0.25f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x + 1, y, z, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
+ m.add({x - ERROR, y - ERROR, z - ERROR, 0.25f, 0.0625f, 0, 0, -1});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 0, 0, -1});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0625f, 0, 0, -1});
|
|
|
|
|
|
- m.add({x + 1, y + 1, z, 0.1875f, 0.0f, 1, 0, 0});
|
|
|
- m.add({x + 1, y, z, 0.1875f, 0.0625f, 1, 0, 0});
|
|
|
- m.add({x, y + 1, z, 0.25f, 0.0f, 1, 0, 0});
|
|
|
+ m.add({x + 1 + ERROR, y + 1 + ERROR, z - ERROR, 0.1875f, 0.0f, 0, 0, -1});
|
|
|
+ m.add({x + 1 + ERROR, y - ERROR, z - ERROR, 0.1875f, 0.0625f, 0, 0, -1});
|
|
|
+ m.add({x - ERROR, y + 1 + ERROR, z - ERROR, 0.25f, 0.0f, 0, 0, -1});
|
|
|
}
|
|
|
|
|
|
void Game::tick(const Keys& keys, const MouseButtons& mButtons, Camera& cam)
|
|
@@ -125,7 +126,7 @@ void Game::tick(const Keys& keys, const MouseButtons& mButtons, Camera& cam)
|
|
|
{
|
|
|
widthAngle += rotation;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
cam.storePosition();
|
|
|
cam.setPosition(pos, lengthAngle, widthAngle);
|
|
|
}
|