]> git.leopard-lacewing.eu Git - cgue_weave.git/commitdiff
door added (not yet linked to lever)
authorLockedLunatic <locked.lunatic@aon.at>
Thu, 16 Jun 2016 23:09:11 +0000 (01:09 +0200)
committerLockedLunatic <locked.lunatic@aon.at>
Thu, 16 Jun 2016 23:09:11 +0000 (01:09 +0200)
time-independent objects are possible now

Weave/Game.cpp
Weave/Graphix/Model/IAnimMesh.cpp
Weave/Graphix/Model/IMetaMesh.cpp
Weave/Scene/Scene.cpp
Weave/Scene/SceneObject.cpp
Weave/Scene/SceneObject.h
models/Door.blend [new file with mode: 0644]
models/Door.blend1 [new file with mode: 0644]
models/Door.dae [new file with mode: 0644]

index 5b60c1472baac0ee47e53effe91a699031c15b13..3b9dcf98bfb31f6ef2c1cbee03e3f96cedbf0b92 100644 (file)
@@ -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"));\r
        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"));\r
        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"));\r
-       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"));\r
+\r
+       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");\r
+       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");\r
+       lever->timeresistant = true;\r
+       current_world->addObject(door);\r
+       current_world->addObject(lever);\r
+\r
 \r
        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"));\r
 \r
index 47e4425bdca662c1a9ae5fa6286e48b6cb6c1956..af4692067737baf9698e5fd1e1b76399d193bad3 100644 (file)
@@ -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;
index e9a38e0bb9a5799363f68f9af40a92e57771ad16..8a7ea46552137841af20dc3062cb28e3de984504 100644 (file)
@@ -80,7 +80,6 @@ IMetaMesh::IMetaMesh(const string& _modelpath, const vec3& _scale, bool _isConve
                                        tmpModelMat = aiMat2mat4(&(root->mChildren[i]->mTransformation));\r
                                }\r
 \r
-                               //tmpModelMat = aiMat2mat4(&(root->mChildren[i]->mTransformation));     //mat4(1.0f)            aiMat2mat4(&(root->mChildren[i]->mTransformation))\r
                                tmpModelMatClean = removeScale(tmpModelMat);\r
                                tmpIMesh = new IAnimMesh(scene->mMeshes[i], _scale* getScale(tmpModelMat));\r
 \r
index c6c2273ae5958965a293a94448fad8bff863155e..f6b2b6af9ac3ce11a776d866c3d7929379b30bdb 100644 (file)
@@ -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;
index 76040ea9ef250d6a67c6a54cc83868d457b68942..505e01548480ea5567fad9c90382382fa7109bdc 100644 (file)
@@ -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;
+                       }
                }
 
        }
index 4ab3f50353de8206085bff590e61bbfdc82419a7..2abcdea1cd11637c9b4ca321ddba6fa8026b6ab0 100644 (file)
@@ -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 (file)
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 (file)
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 (file)
index 0000000..618d261
--- /dev/null
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
+  <asset>
+    <contributor>
+      <author>Blender User</author>
+      <authoring_tool>Blender 2.77.0 commit date:2016-04-05, commit time:18:12, hash:abf6f08</authoring_tool>
+    </contributor>
+    <created>2016-06-16T12:05:11</created>
+    <modified>2016-06-16T12:05:11</modified>
+    <unit name="meter" meter="1"/>
+    <up_axis>Z_UP</up_axis>
+  </asset>
+  <library_images/>
+  <library_geometries>
+    <geometry id="Cube_001-mesh" name="Cube.001">
+      <mesh>
+        <source id="Cube_001-mesh-positions">
+          <float_array id="Cube_001-mesh-positions-array" count="24">-1 -2 0 -1 -2 2 -1 0 0 -1 0 2 1 -2 0 1 -2 2 1 0 0 1 0 2</float_array>
+          <technique_common>
+            <accessor source="#Cube_001-mesh-positions-array" count="8" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <source id="Cube_001-mesh-normals">
+          <float_array id="Cube_001-mesh-normals-array" count="18">-1 0 0 0 1 0 1 0 0 0 -1 0 0 0 -1 0 0 1</float_array>
+          <technique_common>
+            <accessor source="#Cube_001-mesh-normals-array" count="6" stride="3">
+              <param name="X" type="float"/>
+              <param name="Y" type="float"/>
+              <param name="Z" type="float"/>
+            </accessor>
+          </technique_common>
+        </source>
+        <vertices id="Cube_001-mesh-vertices">
+          <input semantic="POSITION" source="#Cube_001-mesh-positions"/>
+        </vertices>
+        <polylist count="12">
+          <input semantic="VERTEX" source="#Cube_001-mesh-vertices" offset="0"/>
+          <input semantic="NORMAL" source="#Cube_001-mesh-normals" offset="1"/>
+          <vcount>3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
+          <p>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</p>
+        </polylist>
+      </mesh>
+    </geometry>
+  </library_geometries>
+  <library_animations>
+    <animation id="Cube_rotation_euler_X">
+      <source id="Cube_rotation_euler_X-input">
+        <float_array id="Cube_rotation_euler_X-input-array" count="2">0 2</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_X-input-array" count="2" stride="1">
+            <param name="TIME" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_X-output">
+        <float_array id="Cube_rotation_euler_X-output-array" count="2">0 0</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_X-output-array" count="2" stride="1">
+            <param name="ANGLE" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_X-interpolation">
+        <Name_array id="Cube_rotation_euler_X-interpolation-array" count="2">BEZIER BEZIER</Name_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_X-interpolation-array" count="2" stride="1">
+            <param name="INTERPOLATION" type="name"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_X-intangent">
+        <float_array id="Cube_rotation_euler_X-intangent-array" count="4">-0.780823 0 1.219177 0</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_X-intangent-array" count="2" stride="2">
+            <param name="X" type="float"/>
+            <param name="Y" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_X-outtangent">
+        <float_array id="Cube_rotation_euler_X-outtangent-array" count="4">0.780823 0 2.780823 0</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_X-outtangent-array" count="2" stride="2">
+            <param name="X" type="float"/>
+            <param name="Y" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <sampler id="Cube_rotation_euler_X-sampler">
+        <input semantic="INPUT" source="#Cube_rotation_euler_X-input"/>
+        <input semantic="OUTPUT" source="#Cube_rotation_euler_X-output"/>
+        <input semantic="INTERPOLATION" source="#Cube_rotation_euler_X-interpolation"/>
+        <input semantic="IN_TANGENT" source="#Cube_rotation_euler_X-intangent"/>
+        <input semantic="OUT_TANGENT" source="#Cube_rotation_euler_X-outtangent"/>
+      </sampler>
+      <channel source="#Cube_rotation_euler_X-sampler" target="Cube/rotationX.ANGLE"/>
+    </animation>
+    <animation id="Cube_rotation_euler_Y">
+      <source id="Cube_rotation_euler_Y-input">
+        <float_array id="Cube_rotation_euler_Y-input-array" count="2">0 2</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Y-input-array" count="2" stride="1">
+            <param name="TIME" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_Y-output">
+        <float_array id="Cube_rotation_euler_Y-output-array" count="2">0 0</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Y-output-array" count="2" stride="1">
+            <param name="ANGLE" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_Y-interpolation">
+        <Name_array id="Cube_rotation_euler_Y-interpolation-array" count="2">BEZIER BEZIER</Name_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Y-interpolation-array" count="2" stride="1">
+            <param name="INTERPOLATION" type="name"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_Y-intangent">
+        <float_array id="Cube_rotation_euler_Y-intangent-array" count="4">-0.780823 0 1.219177 0</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Y-intangent-array" count="2" stride="2">
+            <param name="X" type="float"/>
+            <param name="Y" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_Y-outtangent">
+        <float_array id="Cube_rotation_euler_Y-outtangent-array" count="4">0.780823 0 2.780823 0</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Y-outtangent-array" count="2" stride="2">
+            <param name="X" type="float"/>
+            <param name="Y" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <sampler id="Cube_rotation_euler_Y-sampler">
+        <input semantic="INPUT" source="#Cube_rotation_euler_Y-input"/>
+        <input semantic="OUTPUT" source="#Cube_rotation_euler_Y-output"/>
+        <input semantic="INTERPOLATION" source="#Cube_rotation_euler_Y-interpolation"/>
+        <input semantic="IN_TANGENT" source="#Cube_rotation_euler_Y-intangent"/>
+        <input semantic="OUT_TANGENT" source="#Cube_rotation_euler_Y-outtangent"/>
+      </sampler>
+      <channel source="#Cube_rotation_euler_Y-sampler" target="Cube/rotationY.ANGLE"/>
+    </animation>
+    <animation id="Cube_rotation_euler_Z">
+      <source id="Cube_rotation_euler_Z-input">
+        <float_array id="Cube_rotation_euler_Z-input-array" count="2">0 2</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Z-input-array" count="2" stride="1">
+            <param name="TIME" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_Z-output">
+        <float_array id="Cube_rotation_euler_Z-output-array" count="2">0 90</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Z-output-array" count="2" stride="1">
+            <param name="ANGLE" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_Z-interpolation">
+        <Name_array id="Cube_rotation_euler_Z-interpolation-array" count="2">BEZIER BEZIER</Name_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Z-interpolation-array" count="2" stride="1">
+            <param name="INTERPOLATION" type="name"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_Z-intangent">
+        <float_array id="Cube_rotation_euler_Z-intangent-array" count="4">-0.780823 0 1.219177 90</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Z-intangent-array" count="2" stride="2">
+            <param name="X" type="float"/>
+            <param name="Y" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <source id="Cube_rotation_euler_Z-outtangent">
+        <float_array id="Cube_rotation_euler_Z-outtangent-array" count="4">0.780823 0 2.780823 90</float_array>
+        <technique_common>
+          <accessor source="#Cube_rotation_euler_Z-outtangent-array" count="2" stride="2">
+            <param name="X" type="float"/>
+            <param name="Y" type="float"/>
+          </accessor>
+        </technique_common>
+      </source>
+      <sampler id="Cube_rotation_euler_Z-sampler">
+        <input semantic="INPUT" source="#Cube_rotation_euler_Z-input"/>
+        <input semantic="OUTPUT" source="#Cube_rotation_euler_Z-output"/>
+        <input semantic="INTERPOLATION" source="#Cube_rotation_euler_Z-interpolation"/>
+        <input semantic="IN_TANGENT" source="#Cube_rotation_euler_Z-intangent"/>
+        <input semantic="OUT_TANGENT" source="#Cube_rotation_euler_Z-outtangent"/>
+      </sampler>
+      <channel source="#Cube_rotation_euler_Z-sampler" target="Cube/rotationZ.ANGLE"/>
+    </animation>
+  </library_animations>
+  <library_controllers/>
+  <library_visual_scenes>
+    <visual_scene id="Scene" name="Scene">
+      <node id="Cube" name="Cube" type="NODE">
+        <translate sid="location">0 0 0</translate>
+        <rotate sid="rotationZ">0 0 1 0</rotate>
+        <rotate sid="rotationY">0 1 0 0</rotate>
+        <rotate sid="rotationX">1 0 0 0</rotate>
+        <scale sid="scale">0.075 0.6 1.5</scale>
+        <instance_geometry url="#Cube_001-mesh" name="Cube"/>
+      </node>
+    </visual_scene>
+  </library_visual_scenes>
+  <scene>
+    <instance_visual_scene url="#Scene"/>
+  </scene>
+</COLLADA>
\ No newline at end of file