本文整理汇总了C++中Vector2D::Angle方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector2D::Angle方法的具体用法?C++ Vector2D::Angle怎么用?C++ Vector2D::Angle使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vector2D
的用法示例。
在下文中一共展示了Vector2D::Angle方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetTangentialForceOfGravity
Vector2D Surface::GetTangentialForceOfGravity( Vector2D velocity, float mass )
{
if( _surfaceEdge._point1._x == _surfaceEdge._point2._x )
{
/* Surface is vertical, tangential force of acceleration is just gravity */
return Vector2D( 0, ACCELERATION_OF_GRAVITY );
}
else if( _surfaceEdge._point1._y == _surfaceEdge._point2._y )
{
/* Surface is horizontal, need to determine whether we hit the top or bottom using angle of velocity */
if( velocity.Angle() >= 0 && velocity.Angle() <= 180 )
{
/* Hit bottom of surface bottom */
return Vector2D( 0, ACCELERATION_OF_GRAVITY );
}
else
{
/* Hit top of surface */
return Vector2D();
}
}
else
{
/* Surface is skewed */
return Vector2D();
}
}
示例2: Shoot
void Ship::Shoot(const Vector2D &direction,
const Resource_Projectile_t &projectile, Vector2D offset)
{
Projectile *p = (Projectile*)GetGameContext()->CreateEntityNoSpawn("projectile");
Q_ASSERT(p != nullptr);
float volume = IsPlayer() ? 0.5f : 0.3f;
offset.Rotate(GetAngle());
p->SetOwner(this);
p->Teleport(GetOrigin() + offset);
p->SetAngle(direction.Angle());
p->Init(projectile, IsPlayer());
p->Launch(direction, volume);
if (projectile.fire_rate > 0.0f)
shootDelay = GetGameContext()->GetGameTime() + 1.0f / projectile.fire_rate;
GetGameContext()->SpawnEntity(p);
}