From f5a4bf6a204824892f831284633523d912c23913 Mon Sep 17 00:00:00 2001 From: Peter Schaefer Date: Tue, 28 Jun 2016 04:40:57 +0200 Subject: [PATCH] =?utf8?q?Boar=20ungef=C3=A4hrlich=20nach=20draufspringen?= =?utf8?q?=20+=20sinkt=20etwas=20ab?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- Weave/Scene/Boar.cpp | 31 ++++++++++++++++++++++++++++++- Weave/Scene/SceneObject.cpp | 2 -- Weave/Scene/SceneObject.h | 2 ++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/Weave/Scene/Boar.cpp b/Weave/Scene/Boar.cpp index 79a091d..275b250 100644 --- a/Weave/Scene/Boar.cpp +++ b/Weave/Scene/Boar.cpp @@ -18,7 +18,36 @@ Boar::~Boar() void Boar::update(float _deltaT) { - SceneObject::update(_deltaT); +//Fallen + if (!yStatic) + { + if (yFloorDist>0) + { + if (ySpeed*_deltaT < yFloorDist || ySpeed>0) + move(vec3(0.f, ySpeed*_deltaT, 0.f)); + else + { + move(vec3(0.f, yFloorDist, 0.f)); + // ySpeed = 0; //set to FloorSpeed? + } + if (_deltaT > 0) + { + ySpeed -= _deltaT*YFALL_SPEED; + } + } + + } + + updateAnimation(_deltaT); + + btTransform tmp; + + if(!alive) + tmp.setFromOpenGLMatrix(value_ptr(translate(vec3(0.f, .3f, 0.f))*modelMat)); + else + tmp.setFromOpenGLMatrix(value_ptr(modelMat)); + bt_collision_object->setWorldTransform(tmp); + yFloorDist = 100; if (activated) { diff --git a/Weave/Scene/SceneObject.cpp b/Weave/Scene/SceneObject.cpp index 7347d7e..d2893f5 100644 --- a/Weave/Scene/SceneObject.cpp +++ b/Weave/Scene/SceneObject.cpp @@ -20,8 +20,6 @@ using std::string; -#define YFALL_SPEED 9.8f - static inline bool file_exist(const std::string& name) { struct stat buffer; return (stat(name.c_str(), &buffer) == 0); diff --git a/Weave/Scene/SceneObject.h b/Weave/Scene/SceneObject.h index febf6da..cfe327d 100644 --- a/Weave/Scene/SceneObject.h +++ b/Weave/Scene/SceneObject.h @@ -5,6 +5,8 @@ #include +#define YFALL_SPEED 9.8f + typedef unsigned int uint; using std::string; -- 2.47.3