本文整理汇总了C++中vec2f::SafeNormalized方法的典型用法代码示例。如果您正苦于以下问题:C++ vec2f::SafeNormalized方法的具体用法?C++ vec2f::SafeNormalized怎么用?C++ vec2f::SafeNormalized使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vec2f
的用法示例。
在下文中一共展示了vec2f::SafeNormalized方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PlayerCollision
void BacteroidsState::PlayerCollision(Player *me, GameObject *obj, const vec2f &objToMe, float dist)
{
if (obj->GetType() == Bacter::TYPE)
{
vec2f v = objToMe.SafeNormalized() * dist/8.0f;
vec2f p = me->GetPosition();
me->AddVelocity(v);
me->SetPosition(p + (v / 2.0f));
me->TakeHit(m_soundPlayer);
m_damageFade.Activate(1.0f);
if (me->IsDead())
{
m_damageFade.SetFadeAcceleration(0.0f);
m_damageFade.Activate(1.0f);
m_soundPlayer.PlayPlayerDeathSound(p.x, p.y);
}
}
}
示例2: BacterCollision
void BacteroidsState::BacterCollision(Bacter *me, GameObject *obj, const vec2f &objToMe, float dist)
{
if (obj->GetType() == Bacter::TYPE || obj->GetType() == Player::TYPE)
{
vec2f v = objToMe.SafeNormalized() * dist/8.0f;
vec2f p = me->GetPosition();
me->AddVelocity(v);
me->SetPosition(p + (v / 2.0f));
float r = me->GetRadius() + obj->GetRadius();
me->ModifySize(1.0f + dist / r);
}
else if (obj->GetType() == Projectile::TYPE)
{
if (me->CanSplit())
{
m_score += me->GetPoints();
m_kills++;
me->AddVelocity(obj->GetVelocity() * 0.5f);
SplitBacter(me);
}
}
}