From: LockedLunatic Date: Thu, 16 Jun 2016 23:09:11 +0000 (+0200) Subject: door added (not yet linked to lever) X-Git-Url: https://git.leopard-lacewing.eu/?a=commitdiff_plain;h=d24fe32a110255983c352c3ec274319db6e980d3;p=cgue_weave.git door added (not yet linked to lever) time-independent objects are possible now --- diff --git a/Weave/Game.cpp b/Weave/Game.cpp index 5b60c14..3b9dcf9 100644 --- a/Weave/Game.cpp +++ b/Weave/Game.cpp @@ -64,7 +64,13 @@ Game::Game() : playing(true) //current_world->addObject(new SceneObject( translate(vec3(-3.f, .4f, 0.f))*scale(vec3(3.f)), "cow/cow.dae", "model_cow_2D.jpg")); current_world->addObject(new SceneObject(translate(vec3(-3.f, .4f, 0.f)), vec4(3.0f, 0.5f, 0.4f, 1.5f), "duck_col", "model_duck_2D.png")); current_world->addObject(new SceneObject(translate(vec3(-5.f, .4f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "duck", "model_duck_2D.png")); - current_world->addObject(new SceneObject(translate(vec3(0.f, .4f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "lever", "model_duck_2D.png")); + + SceneObject* door = new SceneObject(translate(vec3(2.f, .4f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "door", "model_duck_2D.png"); + SceneObject* lever = new SceneObject(translate(vec3(0.f, .4f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "lever", "model_duck_2D.png"); + lever->timeresistant = true; + current_world->addObject(door); + current_world->addObject(lever); + current_world->addObject(new SceneObject(translate(vec3(-5.f, 3.f, 0.f)), vec4(3.0f, 3.f, 0.4f, 1.5f), "SkyBox", "model_SkyBox_2D.png")); diff --git a/Weave/Graphix/Model/IAnimMesh.cpp b/Weave/Graphix/Model/IAnimMesh.cpp index 47e4425..af46920 100644 --- a/Weave/Graphix/Model/IAnimMesh.cpp +++ b/Weave/Graphix/Model/IAnimMesh.cpp @@ -53,6 +53,10 @@ void IAnimMesh::updateModel(float deltaT) else { time += animationSpeed * deltaT; + while (time < 0) + { + time = time + animationduration; + } while (time >= animationduration) { time = time - animationduration; diff --git a/Weave/Graphix/Model/IMetaMesh.cpp b/Weave/Graphix/Model/IMetaMesh.cpp index e9a38e0..8a7ea46 100644 --- a/Weave/Graphix/Model/IMetaMesh.cpp +++ b/Weave/Graphix/Model/IMetaMesh.cpp @@ -80,7 +80,6 @@ IMetaMesh::IMetaMesh(const string& _modelpath, const vec3& _scale, bool _isConve tmpModelMat = aiMat2mat4(&(root->mChildren[i]->mTransformation)); } - //tmpModelMat = aiMat2mat4(&(root->mChildren[i]->mTransformation)); //mat4(1.0f) aiMat2mat4(&(root->mChildren[i]->mTransformation)) tmpModelMatClean = removeScale(tmpModelMat); tmpIMesh = new IAnimMesh(scene->mMeshes[i], _scale* getScale(tmpModelMat)); diff --git a/Weave/Scene/Scene.cpp b/Weave/Scene/Scene.cpp index c6c2273..f6b2b6a 100644 --- a/Weave/Scene/Scene.cpp +++ b/Weave/Scene/Scene.cpp @@ -189,6 +189,19 @@ void Scene::update(float deltaT) } else { + // Alle Objekte der Scene aktualisieren + for (auto i = SceneObjects.begin(); i != SceneObjects.end(); ++i) + { + if ((*i)->timeresistant) + { + (*i)->update(deltaT); + } + else + { + (*i)->update(max(-currenttime, -deltaT)); + } + } + float prev_time = timestamps.top().time; mat4 prev_mat = timestamps.top().Playermodel; //unsigned int prev_camera = timestamps.top().CameraX; diff --git a/Weave/Scene/SceneObject.cpp b/Weave/Scene/SceneObject.cpp index 76040ea..505e015 100644 --- a/Weave/Scene/SceneObject.cpp +++ b/Weave/Scene/SceneObject.cpp @@ -39,6 +39,7 @@ ySpeed(0), yStatic(true), yFloorDist(INFINITY), ignore(false), +timeresistant(false), newModel(true), collide_group(0), collide_with(0), @@ -217,7 +218,10 @@ void SceneObject::update(float deltaT) move(vec3(0.f, yFloorDist, 0.f)); // ySpeed = 0; //set to FloorSpeed? } - ySpeed -= deltaT*YFALL_SPEED; + if (deltaT > 0) + { + ySpeed -= deltaT*YFALL_SPEED; + } } } diff --git a/Weave/Scene/SceneObject.h b/Weave/Scene/SceneObject.h index 4ab3f50..2abcdea 100644 --- a/Weave/Scene/SceneObject.h +++ b/Weave/Scene/SceneObject.h @@ -87,6 +87,7 @@ public: float move_delta; float yFloorDist; + bool timeresistant; bool ignore; bool movable = true; diff --git a/models/Door.blend b/models/Door.blend new file mode 100644 index 0000000..1e49216 Binary files /dev/null and b/models/Door.blend differ diff --git a/models/Door.blend1 b/models/Door.blend1 new file mode 100644 index 0000000..5e337a0 Binary files /dev/null and b/models/Door.blend1 differ diff --git a/models/Door.dae b/models/Door.dae new file mode 100644 index 0000000..618d261 --- /dev/null +++ b/models/Door.dae @@ -0,0 +1,223 @@ + + + + + Blender User + Blender 2.77.0 commit date:2016-04-05, commit time:18:12, hash:abf6f08 + + 2016-06-16T12:05:11 + 2016-06-16T12:05:11 + + Z_UP + + + + + + + -1 -2 0 -1 -2 2 -1 0 0 -1 0 2 1 -2 0 1 -2 2 1 0 0 1 0 2 + + + + + + + + + + -1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1 + + + + + + + + + + + + + + + 3 3 3 3 3 3 3 3 3 3 3 3 +

3 0 0 0 1 0 7 1 2 1 3 1 5 2 6 2 7 2 1 3 4 3 5 3 2 4 4 4 0 4 7 5 1 5 5 5 3 0 2 0 0 0 7 1 6 1 2 1 5 2 4 2 6 2 1 3 0 3 4 3 2 4 6 4 4 4 7 5 3 5 1 5

+
+
+
+
+ + + + 0 2 + + + + + + + + 0 0 + + + + + + + + BEZIER BEZIER + + + + + + + + -0.780823 0 1.219177 0 + + + + + + + + + 0.780823 0 2.780823 0 + + + + + + + + + + + + + + + + + + + 0 2 + + + + + + + + 0 0 + + + + + + + + BEZIER BEZIER + + + + + + + + -0.780823 0 1.219177 0 + + + + + + + + + 0.780823 0 2.780823 0 + + + + + + + + + + + + + + + + + + + 0 2 + + + + + + + + 0 90 + + + + + + + + BEZIER BEZIER + + + + + + + + -0.780823 0 1.219177 90 + + + + + + + + + 0.780823 0 2.780823 90 + + + + + + + + + + + + + + + + + + + + + + 0 0 0 + 0 0 1 0 + 0 1 0 0 + 1 0 0 0 + 0.075 0.6 1.5 + + + + + + + +
\ No newline at end of file