From 0149a95771a5295f660a5c6132dc0362215646a1 Mon Sep 17 00:00:00 2001 From: Peter Schaefer Date: Thu, 30 Apr 2015 14:34:59 +0200 Subject: [PATCH] =?utf8?q?cleanup=20in=20Game.cpp=20BBox=20kollisionen=20p?= =?utf8?q?assen=20f=C3=BCrs=20erste=20(k=C3=B6nnen=20Aber=20noch=20optimie?= =?utf8?q?rt=20werden)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Weave/Game.cpp | 42 ++--------------------------------- Weave/Graphix/Model/BBox.cpp | 4 ++++ Weave/Graphix/Model/Model.cpp | 11 +++++---- 3 files changed, 11 insertions(+), 46 deletions(-) diff --git a/Weave/Game.cpp b/Weave/Game.cpp index b24c49d..912f028 100644 --- a/Weave/Game.cpp +++ b/Weave/Game.cpp @@ -49,64 +49,26 @@ Game::Game() : playing(true) //Allg Shader Shader* shader1 = new Shader("basicTexture_VS.hlsl", "lightingTexture_FS.hlsl"); -// Shader* shaderSky = new Shader("skybox_VS.hlsl", "skybox_FS.hlsl"); // load LVL SceneObject* tmp_world = new SceneObject(shader1, scale(3.f * vec3(1.f, .3f, 1.f)), vec4(4.0f, 1.0f, 1.0f, 2.0f), "level_test.dae", "model_levelTest_2D.png"); tmp_world->ignore = true; current_world->addObject(tmp_world); - current_world->addObject(new SceneObject(shader1, translate(vec3(-3.f, 1.f, 0.f)), vec4(1.0f, 1.0f, 1.0f, 3.0f), new BBox(), "")); +// current_world->addObject(new SceneObject(shader1, translate(vec3(-3.f, 1.f, 0.f)), vec4(1.0f, 1.0f, 1.0f, 3.0f), new BBox(), "")); //Player SceneObject* tmp_playerObject = new Marvin(shader1, translate(vec3(1.f, 3.f, 1.f))*rotate((float)M_PI_4,vec3(0.f,1.f,0.f))); tmp_playerObject->yStatic= false; - //tmp_playerObject->setIntelligenz(new PlayerI(tmp_playerObject)); current_world->addObject(tmp_playerObject); current_world->setLookAt(tmp_playerObject); - //player1 = Player(tmp_playerObject); - - // World - //SceneObject* tmp_world = new SceneObject(shader1, scale(vec3(15.f)), "sphere/sphere.dae", "sky_withstars.png",1.f,1.f,1.f,vec3(0.f)); - //tmp_world->setCollision(false); - - //SceneObject::setTextureDanger("model_cow.jpg"); - //SceneObject::setTextureSave("model_cow.jpg"); - - //current_world->addObject(tmp_world); - - //int size = 5; - //int steps = 10; - - //vec3 pos; - - //SceneObject* tmp_enemy; - //for (auto i = 0; i < 10;++i) - //{ - // pos = vec3(((float)(rand() % (size*steps * 2)) / steps - size), ((float)(rand() % (size*steps * 2)) / steps - size), ((float)(rand() % (size*steps * 2)) / steps - size)); - // if (VektorAbs(pos) < 2) - // { - // --i; - // continue; - // } - // tmp_enemy = new SceneObject(shader1, translate(pos), "cow/cow.dae", "", (float)(rand() % 10 + 2) / 10.f); - // tmp_enemy->setEnemy(true); - // current_world->addObject(tmp_enemy); - // //cout << ((float)(rand() % (size*steps * 2)) / steps - size) << ((float)(rand() % (size*steps * 2)) / steps - size) << ((float)(rand() % (size*steps * 2)) / steps - size) << endl; - //} - //ein Gegner + //current_world->addObject(new SceneObject(shader1, glm::mat4(1.0f), "Player.dae", "model_player.png")); //current_world->addObject(new SceneObject(shader1, translate(vec3(-3.f, .4f, 0.f))*scale(vec3(3.f)), "cow/cow.dae", "model_cow_2D.jpg")); current_world->addObject(new SceneObject(shader1, translate(vec3(-3.f, .4f, 0.f))*scale(vec3(.4f)), vec4(3.0f, 0.5f, 0.4f, 1.5f), "duck.dae", "model_duck_2D.png")); - - //import("level_test.dae", current_world, shader1); - - - - } diff --git a/Weave/Graphix/Model/BBox.cpp b/Weave/Graphix/Model/BBox.cpp index 2f04e36..a959685 100644 --- a/Weave/Graphix/Model/BBox.cpp +++ b/Weave/Graphix/Model/BBox.cpp @@ -8,6 +8,10 @@ BBox::BBox() float vertex[] { -.5f, -.5f, -.5f, .5f, -.5f, -.5f, .5f, .5f, -.5f, -.5f, .5f, -.5f, -.5f, -.5f, .5f, .5f, -.5f, .5f, .5f, .5f, .5f, -.5f, .5f, .5f }; + BBmin = vec3(-.5f); + BBmax = vec3(.5f); + updateBB(BBmin, BBmax); + //import("skybox.dae", numvertices, numfaces, vertex, uvs, normals, index, 0); genBuffer(vertexBuffer, numvertices * 3 * sizeof(float), (void*)vertex); diff --git a/Weave/Graphix/Model/Model.cpp b/Weave/Graphix/Model/Model.cpp index 15a0eae..c79aa39 100644 --- a/Weave/Graphix/Model/Model.cpp +++ b/Weave/Graphix/Model/Model.cpp @@ -108,13 +108,12 @@ void Model::drawBBox(Shader* _shader,const mat4& _modelMat) const if (BoundingBox==nullptr) { BoundingBox = new BBox(); -// BBoxShader = new Shader("basic_FS.hlsl", "basic_VS.hlsl"); + //BBoxShader = new Shader("basic_FS.hlsl", "basic_VS.hlsl"); BoundingBox->bindShader(Graphix::shader_BBox); - //auto tmp = Graphix::shader_BBox->getUniformLocation("uFragmentColor"); + //int tmp = Graphix::shader_BBox->getUniformLocation("uFragmentColor"); //if (tmp >= 0) - // glUniform4fv((int)Graphix::shader_BBox, 1, value_ptr(vec4(.3f,.9f,.9f,1.f))); - + // glUniform4fv(Graphix::shader_BBox->getHandle(), 1, value_ptr(vec4(.3f, .9f, .9f, 1.f))); } // BoundingBox->bindShader(_shader); BoundingBox->drawModel(Graphix::shader_BBox, (Texture*)nullptr, _modelMat*translate(BBposition)*scale(BBsize), vec4(1.0f, 1.0f, 1.0f, 3.0f)); @@ -251,8 +250,8 @@ void Model::isColliding(int& _overlap, int& _inside, const Model* _model,const m getBBsp(sizeA, posA); _model->getBBsp(sizeB, posB); - posA = (vec3)(_modelMatThis*vec4(posA, 1.f)); //transpose sollte eigentlich reichen - posB = (vec3)(_modelMatOther*vec4(posB, 1.f)); + posA = posA+(vec3)(_modelMatThis[3]); //transpose sollte eigentlich reichen + posB = posB+(vec3)(_modelMatOther[3]); sizeA = rotateSize(sizeA, _modelMatThis); sizeB = rotateSize(sizeB, _modelMatOther); -- 2.47.3