本文整理汇总了C++中Skill::Update方法的典型用法代码示例。如果您正苦于以下问题:C++ Skill::Update方法的具体用法?C++ Skill::Update怎么用?C++ Skill::Update使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Skill
的用法示例。
在下文中一共展示了Skill::Update方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Update
void Actor::Update( const FrameTime& frameTime )
{
float fDot = acos(m_vFaceDir.Dot(Float3(0,0,1)));
//Float3 vAxis = Float3(0,0,1).Cross(vDir).Normalize();
if(m_vFaceDir.x < 0){
fDot*=-1;
}
m_pNode->SetQuat(Float4(Float3(0,1,0),fDot));
if(m_uiLowBodyBoneIndex!=0xffffffff){
if(m_vMoveDir.Length() < 0.5){
m_pModel->DisableBoneExtraRotate(m_uiLowBodyBoneIndex);
}else{
Float3 vNewMoveDir = m_vMoveDir;
float fRun = vNewMoveDir.Dot(m_vFaceDir);
if(fRun <0){
vNewMoveDir*=-1;//m_pModel->EnableBoneExtraRotate(uiIndex,Float4(Float3(0,0,-1),fFootDot));
}
float fFootAngle = acos(vNewMoveDir.Dot(m_vFaceDir));
if(fFootAngle < 0.00001f){
m_pModel->EnableBoneExtraRotate(m_uiLowBodyBoneIndex,Float4(Float3(0,0,1),0));
}else{
Float3 vAxis = m_vFaceDir.Cross(vNewMoveDir).Normalize();
m_pModel->EnableBoneExtraRotate(m_uiLowBodyBoneIndex,Float4(Float3(0,0,vAxis.y),-fFootAngle));
}
}
}
//UpdateSkill
U32 uiSkillCount = m_vecSkill.size();
for(U32 i=0;i<uiSkillCount;i++){
Skill* pSkill = m_vecSkill[i];
if(pSkill!=NULL){
pSkill->Update(frameTime,this);
}
}
Move(frameTime.fTimeDelta);
}