本文整理汇总了C++中Vector2D::Rotate方法的典型用法代码示例。如果您正苦于以下问题:C++ Vector2D::Rotate方法的具体用法?C++ Vector2D::Rotate怎么用?C++ Vector2D::Rotate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Vector2D
的用法示例。
在下文中一共展示了Vector2D::Rotate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: OnUpdate
void GameState::OnUpdate(float time_diff) {
if(IsActive()) {
Vector2D speed = mSubmarine->GetAbsoluteSpeed();
speed.Rotate(mSubmarine->GetAbsoluteRotation());
float x = 3.f; // move view to where we'll be in x seconds
Vector2D target = Vector2D(Input::GetInstance().GetDefaultWindow().GetWidth() / 2, Input::GetInstance().GetDefaultWindow().GetHeight() / 2) - mSubmarine->Position - speed * x;
Vector2D diff = target - mScene->Position;
mScene->Move(diff * time_diff);
mScene->Update(time_diff);
}
}
示例2: Spawn
void ComponentEnemy::Spawn(const Point2D& worldPosition)
{
std::shared_ptr<ComponentTransform2D> enemyTransformComponent = m_TransformComponent.lock();
if (enemyTransformComponent != nullptr)
{
enemyTransformComponent->SetWorldPosition(worldPosition);
enemyTransformComponent->UpdateWorldTransform();
}
std::shared_ptr<ComponentRigidBody> enemyRigidBodyComponent = m_RigidBodyComponent.lock();
if (enemyRigidBodyComponent != nullptr)
{
Vector2D direction = Transform2D::k_UpDefault;
direction.Rotate((float)(rand() % 360));
enemyRigidBodyComponent->SetVelocity(direction * m_Speed);
}
}
示例3: 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);
}