From cd5a845b77d6c28e5084b64b5224977a0d2a7325 Mon Sep 17 00:00:00 2001 From: Peter Schaefer Date: Mon, 22 Jun 2015 14:34:24 +0200 Subject: [PATCH] eventBoxen working again --- Weave/Game.cpp | 2 +- Weave/Scene/EventBox.cpp | 15 +++++++++++++++ Weave/Scene/Marvin.cpp | 2 +- Weave/Scene/SceneObject.h | 3 ++- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Weave/Game.cpp b/Weave/Game.cpp index 9360072..bd35608 100644 --- a/Weave/Game.cpp +++ b/Weave/Game.cpp @@ -71,7 +71,7 @@ Game::Game() : playing(true) current_world->addObject(new SceneObject(shader1, translate(vec3(-5.f, 3.f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "SkyBox.dae", "model_SkyBox_2D.png")); //current_world->addObject(new EventBox(translate(vec3(3.f, .4f, 0.f)),EB_LOSTZONE)); - //current_world->addObject(new EventBox(translate(vec3(3.f, .4f, -15.f)), EB_WINZONE)); + current_world->addObject(new EventBox(translate(vec3(3.f, .4f, -15.f)), EB_WINZONE)); } diff --git a/Weave/Scene/EventBox.cpp b/Weave/Scene/EventBox.cpp index 196072b..404b850 100644 --- a/Weave/Scene/EventBox.cpp +++ b/Weave/Scene/EventBox.cpp @@ -15,6 +15,21 @@ EventBox::EventBox(const mat4& _modelMat, uint _EB_TYPE) : SceneObject(Graphix::shader_BBox, _modelMat, vec4(0.f), Model::getBBoxModel(), ""), eb_type(_EB_TYPE) { + collide_group = COL_EVENT; + collide_with = COL_MARVIN; + + btTransform btModelMat; + btModelMat.setFromOpenGLMatrix(value_ptr(modelMat)); + + btDefaultMotionState* MotionState = + new btDefaultMotionState(btModelMat); + btRigidBody::btRigidBodyConstructionInfo RigidBodyCI(0, MotionState, *model, btVector3(0, 0, 0)); + + bt_rigid_body = new btRigidBody(RigidBodyCI); + + btTransform tmp; + tmp.setFromOpenGLMatrix(value_ptr(modelMat)); + bt_collision_object->setWorldTransform(tmp); } diff --git a/Weave/Scene/Marvin.cpp b/Weave/Scene/Marvin.cpp index 4fe18f7..1d4bbd6 100644 --- a/Weave/Scene/Marvin.cpp +++ b/Weave/Scene/Marvin.cpp @@ -16,7 +16,7 @@ Marvin::Marvin(Shader* _shader, const mat4& _modelMat) : SceneObject(_shader, _modelMat, vec4(7.0f, 0.7f, 1.0f, 3.0f), "Player.dae", "model_player_2D.png") { collide_group = COL_MARVIN; - collide_with = COL_LEVEL | COL_ENEMY; + collide_with = COL_LEVEL | COL_ENEMY | COL_EVENT; } diff --git a/Weave/Scene/SceneObject.h b/Weave/Scene/SceneObject.h index e1a1351..ba15fbe 100644 --- a/Weave/Scene/SceneObject.h +++ b/Weave/Scene/SceneObject.h @@ -18,7 +18,8 @@ enum collisiontypes { COL_LEVEL = BIT(0), //