123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263 |
- #include "Client.h"
- #include "../engine/Mouse.h"
- #include "../math/Matrix3D.h"
- #include "../math/Matrix3DStack.h"
- #include "../engine/Key.h"
- Mesh Client::mesh;
- TextureMesh Client::tmesh;
- Vector3D Client::position;
- Texture Client::texture;
- Texture Client::texture2;
- float Client::lengthAngle = 0;
- float Client::widthAngle = 0;
- Client::Client()
- {
- }
- void Client::init()
- {
- if(texture.load("resources/textures.png"))
- {
- cout << "texture success" << endl;
- }
- else
- {
- cout << "texture fail" << endl;
- }
- if(texture2.load("resources/font8x8.png"))
- {
- cout << "texture2 success" << endl;
- }
- else
- {
- cout << "texture2 fail" << endl;
- }
-
- cout << "init" << endl;
- mesh.init();
-
- // bottom
- mesh.addPoint(0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f);
-
- // top
- mesh.addPoint(0.0f, 1.0f, 0.0f, 0.5f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(0.0f, 1.0f, 1.0f, 0.5f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 0.0f, 0.5f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 0.0f, 0.5f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(0.0f, 1.0f, 1.0f, 0.5f, 0.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 1.0f, 0.5f, 0.0f, 0.0f, 1.0f);
-
- // right
- mesh.addPoint(1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f);
- mesh.addPoint(1.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f);
- mesh.addPoint(1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 1.0f, 0.0f, 0.0f, 1.0f, 1.0f);
-
- // left
- mesh.addPoint(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 1.0f);
- mesh.addPoint(0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.5f, 1.0f);
- mesh.addPoint(0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.5f, 1.0f);
- mesh.addPoint(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 1.0f);
- mesh.addPoint(0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.5f, 1.0f);
- mesh.addPoint(0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.5f, 1.0f);
-
- // back
- mesh.addPoint(0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f);
- mesh.addPoint(0.0f, 0.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f);
- mesh.addPoint(0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 0.0f, 1.0f);
-
- // front
- mesh.addPoint(0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 0.0f, 0.0f, 0.5f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 1.0f);
- mesh.addPoint(0.0f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f, 1.0f);
- mesh.addPoint(0.0f, 1.0f, 0.0f, 0.0f, 0.5f, 0.0f, 1.0f);
- mesh.addPoint(1.0f, 1.0f, 0.0f, 0.0f, 0.5f, 0.0f, 1.0f);
-
- mesh.build();
-
- tmesh.init();
-
- // bottom
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.125f, 0.0f);
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.1875f, 0.0f);
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.125f, 0.0625f);
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.1875f, 0.0f);
- tmesh.addPoint(1.0f, 0.0f, 1.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.125f, 0.0625f);
-
- // top
- tmesh.addPoint(0.0f, 1.0f, 0.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.3125f, 0.0f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.3125f, 0.0f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.3125f, 0.0625f);
-
- // right
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(1.0f, 0.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.1875f, 0.0f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.25f, 0.0f);
-
- // left
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 1.0f, 0.0f, 0.1875f, 0.0f);
-
- // back
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 0.0f, 1.0f, 0.25f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 0.0f, 1.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 1.0f, 0.25f, 0.0f);
- tmesh.addPoint(0.0f, 1.0f, 1.0f, 0.1875f, 0.0f);
-
- // front
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.25f, 0.0f);
- tmesh.addPoint(1.0f, 0.0f, 0.0f, 0.25f, 0.0625f);
- tmesh.addPoint(0.0f, 0.0f, 0.0f, 0.1875f, 0.0625f);
- tmesh.addPoint(0.0f, 1.0f, 0.0f, 0.1875f, 0.0f);
- tmesh.addPoint(1.0f, 1.0f, 0.0f, 0.25f, 0.0f);
-
- tmesh.build();
-
- position.set(0, 0, -2);
- GameEngine::getCamera().setPosition(position.getX(), position.getY(), position.getZ());
- GameEngine::getCamera().storePosition();
-
- Key::map(KEY_LEFT, GLFW_KEY_A);
- Key::map(KEY_RIGHT, GLFW_KEY_D);
- Key::map(KEY_UP, GLFW_KEY_W);
- Key::map(KEY_DOWN, GLFW_KEY_S);
- Key::map(KEY_JUMP, GLFW_KEY_SPACE);
- Key::map(KEY_SNEAK, GLFW_KEY_LEFT_SHIFT);
-
- Key::map(KEY_CAM_LEFT, GLFW_KEY_H);
- Key::map(KEY_CAM_RIGHT, GLFW_KEY_K);
- Key::map(KEY_CAM_UP, GLFW_KEY_U);
- Key::map(KEY_CAM_DOWN, GLFW_KEY_J);
- }
- void Client::tick()
- {
- /*Camera& c = GameEngine::getCamera();
-
- c.storePosition();
- c.storeAngles();
-
- 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.setPosition(position.getX(), position.getY(), position.getZ());
- c.setAngles(lengthAngle, widthAngle);*/
- }
- void Client::renderTick(float lag)
- {
-
-
- //GameEngine::getCamera().updateView(lag);
- //texture.bind();
-
- /*GameEngine::setTextureEnabled(false);
- GameEngine::setColorEnabled(true);
-
- GameEngine::getDirectRenderer().prepare();
- GameEngine::getDirectRenderer().drawRectangle(0, 0, 200, 300, 0, 0, 1, 1, Color::getColor(255, 0, 0));
- GameEngine::getDirectRenderer().drawRectangle(200, 0, 400, 300, 0, 0, 1, 1, Color::getColor(0, 255, 0));
- GameEngine::getDirectRenderer().drawRectangle(400, 0, 600, 300, 0, 0, 1, 1, Color::getColor(0, 0, 255));
-
- GameEngine::setTextureEnabled(true);
- GameEngine::setColorEnabled(true);
-
- string wusi;
- GameEngine::setUseBlending(true);
-
- float y = 30;
- y = GameEngine::getDirectRenderer().drawString(30, y, true, wusi);
-
- wusi = "FPS: " + to_string(GameEngine::getFramesPerSecond());
- y = GameEngine::getDirectRenderer().drawString(30, y, true, wusi);
-
- wusi = "TPS: " + to_string(GameEngine::getTicksPerSecond());
- y = GameEngine::getDirectRenderer().drawString(30, y, true, wusi);*/
-
- GameEngine::setTextureEnabled(true);
- GameEngine::setColorEnabled(true);
- GameEngine::setUseBlending(true);
- GameEngine::getDirectRenderer().prepare();
- string fps = "FPS: " + to_string(GameEngine::getFramesPerSecond());
- GameEngine::getDirectRenderer().drawString(30, 30, true, fps);
- //tmesh.draw();
- //cout << "renderTick" << endl;
- }
- void Client::start()
- {
- GameEngine::start(1024, 620, "Test Game", init, tick, renderTick);
-
- for(char c = 'a'; c <= 'z'; c++)
- {
- cout << "&" << c << "O";
- }
- }
|