Updated experimental demo to use node parents

Former-commit-id: f99d90c6242886cce8973b666adb28a242d1e17d
This commit is contained in:
Lynix 2012-12-03 23:41:14 +01:00
parent 9e24a6b7b2
commit 865c8d97a3
1 changed files with 12 additions and 9 deletions

View File

@ -285,12 +285,23 @@ int main()
drfreak.SetSequence("stand"); drfreak.SetSequence("stand");
// Afin de synchroniser le quaternion avec les angles d'euler // Afin de synchroniser le quaternion avec les angles d'euler
camRot = camera.GetDerivedRotation().ToEulerAngles(); NzQuaternionf globalRot = camera.GetDerivedRotation();
NzVector3f globalPos = camera.GetDerivedTranslation();
camRot = globalRot.ToEulerAngles();
camera.SetParent(); // On détache la caméra du docteur
camera.SetRotation(globalRot);
camera.SetTranslation(globalPos);
thirdPerson = false; thirdPerson = false;
} }
else else
{
camera.SetParent(drfreak); // On accroche la caméra au Dr. Freak
camera.SetRotation(NzEulerAnglesf(-35.f, 0.f, 0.f)); // Une rotation pour regarder vers le bas
camera.SetTranslation(NzVector3f(0.f, 30.f + drfreak.GetTranslation().y, 50.f));
thirdPerson = true; thirdPerson = true;
}
} }
break; break;
@ -442,14 +453,6 @@ int main()
camera.Translate(up * speed * elapsedTime, nzCoordSys_Global); camera.Translate(up * speed * elapsedTime, nzCoordSys_Global);
} }
if (thirdPerson)
{
static NzQuaternionf rotDown(NzEulerAnglesf(-35.f, 0.f, 0.f)); // Une rotation pour regarder vers le bas
camera.SetRotation(drfreak.GetDerivedRotation() * rotDown);
camera.SetTranslation(drfreak.GetDerivedTranslation() + camera.GetDerivedRotation() * NzVector3f(0.f, 30.f, 50.f));
}
// Animation // Animation
if (!paused) if (!paused)
{ {