本文整理汇总了C++中MFMatrix::RotateX方法的典型用法代码示例。如果您正苦于以下问题:C++ MFMatrix::RotateX方法的具体用法?C++ MFMatrix::RotateX怎么用?C++ MFMatrix::RotateX使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MFMatrix
的用法示例。
在下文中一共展示了MFMatrix::RotateX方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Game_Update
void Game_Update()
{
if(!bShowModel)
{
if(MFInput_WasPressed(Key_Up, IDD_Keyboard) && menuIndex > 0)
--menuIndex;
else if(MFInput_WasPressed(Key_Down, IDD_Keyboard) && menuIndex < (int)models.size()-1)
++menuIndex;
else if(MFInput_WasPressed(Key_Return, IDD_Keyboard) && models.size() > 0)
{
bShowModel = true;
// load model
pModel = MFModel_CreateWithAnimation(models[menuIndex].CStr());
}
}
else
{
if(MFInput_WasPressed(Key_Escape, IDD_Keyboard))
{
if(pModel)
{
MFModel_Destroy(pModel);
pModel = NULL;
}
models.clear();
Scan("data:");
if(models.size() <= (size_t)menuIndex)
menuIndex = models.size() ? (int)models.size() - 1 : 0;
bShowModel = false;
return;
}
if(pModel)
{
if(MFInput_Read(Mouse_LeftButton, IDD_Mouse) > 0.f)
{
yaw += -MFInput_Read(Mouse_XDelta, IDD_Mouse) * 0.02f;
pitch += -MFInput_Read(Mouse_YDelta, IDD_Mouse) * 0.015f;
}
if(MFInput_Read(Mouse_MiddleButton, IDD_Mouse) > 0.f)
{
zoom *= 1.f + -MFInput_Read(Mouse_YDelta, IDD_Mouse) * 0.02f;
}
// calculate a spinning world matrix
MFMatrix world;
world.SetTranslation(MakeVector(0, -0.25f, 1) * zoom);
world.RotateY(yaw);
world.RotateX(pitch);
// set world matrix to the model
MFModel_SetWorldMatrix(pModel, world);
// advance the animation
MFAnimation *pAnim = MFModel_GetAnimation(pModel);
if(pAnim)
{
float start, end;
MFAnimation_GetFrameRange(pAnim, &start, &end);
static float time = 0.f;
time += MFSystem_TimeDelta();// * 500;
while(time >= end)
time -= end;
MFAnimation_SetFrame(pAnim, time);
}
}
}
}