aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/ClientHamr
diff options
context:
space:
mode:
authorDavid Walter Seikel2013-01-20 07:27:32 +1000
committerDavid Walter Seikel2013-01-20 07:27:32 +1000
commit94a8d9c121f0d07d6a94a02516a578918b96e268 (patch)
treeec193a71835cfcb45de85fb8d8eb9095b469ed3e /ClientHamr
parentChange the fly by stuff. Still not so good at the end. (diff)
downloadSledjHamr-94a8d9c121f0d07d6a94a02516a578918b96e268.zip
SledjHamr-94a8d9c121f0d07d6a94a02516a578918b96e268.tar.gz
SledjHamr-94a8d9c121f0d07d6a94a02516a578918b96e268.tar.bz2
SledjHamr-94a8d9c121f0d07d6a94a02516a578918b96e268.tar.xz
Much better camera path.
Diffstat (limited to 'ClientHamr')
-rw-r--r--ClientHamr/extantz/CDemo.cpp68
1 files changed, 35 insertions, 33 deletions
diff --git a/ClientHamr/extantz/CDemo.cpp b/ClientHamr/extantz/CDemo.cpp
index 9632675..5ecce45 100644
--- a/ClientHamr/extantz/CDemo.cpp
+++ b/ClientHamr/extantz/CDemo.cpp
@@ -95,20 +95,15 @@ void CDemo::switchToNextScene()
95 scene::ICameraSceneNode* camera = 0; 95 scene::ICameraSceneNode* camera = 0;
96 96
97 camera = sm->getActiveCamera(); 97 camera = sm->getActiveCamera();
98 if (camera)
99 {
100 sm->setActiveCamera(0);
101 camera->remove();
102 camera = 0;
103 }
104 98
105 switch(currentScene) 99 switch(currentScene)
106 { 100 {
107 case 1: // panorama camera 101 case 1: // panorama camera
108 { 102 {
109 core::array<core::vector3df> points; 103 core::array<core::vector3df> points, points2;
110 104
111 points.push_back(core::vector3df(-931.473755f, 900.0f, 2000.0f)); // -49873 105 points.push_back(core::vector3df(-931.473755f, 900.0f, 2000.0f)); // -49873
106 points.push_back(core::vector3df(-931.473755f, 900.0f, 2000.0f)); // -49873
112 points.push_back(core::vector3df(-931.473755f, 700.0f, 1750.0f)); // -49873 107 points.push_back(core::vector3df(-931.473755f, 700.0f, 1750.0f)); // -49873
113 points.push_back(core::vector3df(-931.473755f, 500.0f, 1500.0f)); // -49873 108 points.push_back(core::vector3df(-931.473755f, 500.0f, 1500.0f)); // -49873
114 points.push_back(core::vector3df(-931.473755f, 300.0f, 1250.0f)); // -49873 109 points.push_back(core::vector3df(-931.473755f, 300.0f, 1250.0f)); // -49873
@@ -150,16 +145,16 @@ void CDemo::switchToNextScene()
150 points.push_back(core::vector3df(96.783348f, 181.639481f, 648.188110f)); 145 points.push_back(core::vector3df(96.783348f, 181.639481f, 648.188110f));
151 points.push_back(core::vector3df(97.865623f, 138.905975f, 484.812561f)); 146 points.push_back(core::vector3df(97.865623f, 138.905975f, 484.812561f));
152 points.push_back(core::vector3df(99.612457f, 102.463669f, 347.603210f)); 147 points.push_back(core::vector3df(99.612457f, 102.463669f, 347.603210f));
148 points.push_back(core::vector3df(99.0f, 95.0f, 347.0f));
153 points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); 149 points.push_back(core::vector3df(99.0f, 90.0f, 347.0f));
154 points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); 150 points.push_back(core::vector3df(99.0f, 85.0f, 347.0f));
155 points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); 151 points.push_back(core::vector3df(99.0f, 80.0f, 347.0f));
156 152 points.push_back(core::vector3df(99.0f, 75.0f, 347.0f));
157 timeForThisScene = (points.size() - 1) * 1000; 153 points.push_back(core::vector3df(99.0f, 75.0f, 347.0f));
158 154 points.push_back(core::vector3df(99.0f, 75.0f, 347.0f));
155 timeForThisScene = (points.size() - 2) * 1000;
159 camera = sm->addCameraSceneNode(0, points[0], core::vector3df(0, 400, 0)); 156 camera = sm->addCameraSceneNode(0, points[0], core::vector3df(0, 400, 0));
160 157 sa = sm->createFollowSplineAnimator(device->getTimer()->getTime(), points, 1.0f, 0.6f, false, false);
161 sa = sm->createFollowSplineAnimator(device->getTimer()->getTime(),
162 points);
163 camera->addAnimator(sa); 158 camera->addAnimator(sa);
164 sa->drop(); 159 sa->drop();
165 } 160 }
@@ -169,22 +164,23 @@ void CDemo::switchToNextScene()
169 { 164 {
170 core::array<core::vector3df> points; 165 core::array<core::vector3df> points;
171 166
172 points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); 167 camera->setTarget(core::vector3df(100, 145, -80));
173 points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); 168
174 points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); 169 points.push_back(core::vector3df(99.0f, 75.0f, 347.0f));
175 points.push_back(core::vector3df(99.0f, 90.0f, 347.0f)); 170 points.push_back(core::vector3df(100.0f, 75.0f, 347.0f));
176 points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); 171 points.push_back(core::vector3df(105.0f, 75.0f, 347.0f));
177 points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); 172 points.push_back(core::vector3df(110.0f, 70.0f, 347.0f));
178 points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); 173 points.push_back(core::vector3df(115.0f, 70.0f, -160.0f));
179 points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); 174 points.push_back(core::vector3df(120.0f, 70.0f, -160.0f));
180 points.push_back(core::vector3df(108.0f, 90.0f, -140.0f)); 175 points.push_back(core::vector3df(125.0f, 65.0f, -160.0f));
181 176 points.push_back(core::vector3df(130.0f, 65.0f, -160.0f));
182 timeForThisScene = (points.size() - 1) * 500; 177 points.push_back(core::vector3df(135.0f, 65.0f, -160.0f));
183 178 points.push_back(core::vector3df(150.0f, 170.0f, -160.0f));
184 camera = sm->addCameraSceneNode(0, points[0], core::vector3df(108, 90, -140)); 179 points.push_back(core::vector3df(150.0f, 170.0f, -160.0f));
185 180 points.push_back(core::vector3df(150.0f, 170.0f, -160.0f));
186 sa = sm->createFollowSplineAnimator(device->getTimer()->getTime(), 181 timeForThisScene = (points.size() - 2) * 1000;
187 points); 182// camera = sm->addCameraSceneNode(0, points[0], core::vector3df(108, 90, -140));
183 sa = sm->createFollowSplineAnimator(device->getTimer()->getTime(), points, 1.0f, 0.6f, false, false);
188 camera->addAnimator(sa); 184 camera->addAnimator(sa);
189 sa->drop(); 185 sa->drop();
190 } 186 }
@@ -192,6 +188,12 @@ void CDemo::switchToNextScene()
192 188
193 case 3: // interactive, go around 189 case 3: // interactive, go around
194 { 190 {
191 if (camera)
192 {
193 sm->setActiveCamera(0);
194 camera->remove();
195 camera = 0;
196 }
195 timeForThisScene = -1; 197 timeForThisScene = -1;
196 198
197 SKeyMap keyMap[9]; 199 SKeyMap keyMap[9];
@@ -219,11 +221,11 @@ void CDemo::switchToNextScene()
219 keyMap[8].KeyCode = KEY_KEY_J; 221 keyMap[8].KeyCode = KEY_KEY_J;
220 222
221 camera = sm->addCameraSceneNodeFPS(0, 100.0f, .4f, -1, keyMap, 9, false, 3.f); 223 camera = sm->addCameraSceneNodeFPS(0, 100.0f, .4f, -1, keyMap, 9, false, 3.f);
222 camera->setPosition(core::vector3df(108, 90, -140)); 224 camera->setPosition(core::vector3df(150, 170, -160));
223 camera->setFarValue(5000.0f); 225 camera->setFarValue(5000.0f);
224 226
225 scene::ISceneNodeAnimatorCollisionResponse* collider = 227 scene::ISceneNodeAnimatorCollisionResponse* collider =
226 sm->createCollisionResponseAnimator(metaSelector, camera, core::vector3df(50, 100, 25), core::vector3df(0, quakeLevelMesh ? -10.f : 0.0f, 0), core::vector3df(0, 45, 0), 0.005f); 228 sm->createCollisionResponseAnimator(metaSelector, camera, core::vector3df(25, 100, 25), core::vector3df(0, quakeLevelMesh ? -10.f : 0.0f, 0), core::vector3df(0, 45, 0), 0.005f);
227 camera->addAnimator(collider); 229 camera->addAnimator(collider);
228 collider->drop(); 230 collider->drop();
229 } 231 }