制造一种不断改变发射方向的导弹

Creating a missile that fires in a ever changing direction

本文关键字:发射 改变 方向 一种 制造      更新时间:2023-10-16

我是一名大学编程专业的学生,我在制作2D《星球大战x翼》时遇到了这个问题。这艘船不断改变方向以避免来袭的战斗机,我已经能够在x翼前面制造一枚导弹。

问题是我不知道如何向船面对的方向发射导弹。

放置导弹代码:

if (pInputs->KeyPressed(DIK_SPACE))
{
    Vector2D missileDirection;  //Section needs fixed as missile spawns inside ship and destroys it.
    missileDirection.setBearing(m_angle, 100);
    Vector2D missilePosition = m_position + missileDirection;
    FlakShell* pFlakShell = new FlakShell;
    pFlakShell->Initialise(missilePosition, m_angle, m_pParticles);
    Game::instance.m_objects.AddItem(pFlakShell, true);
}

这是FlakShell(missile)的速度:

m_velocity.set(0, 0);

这是我要让它移动的代码:

m_velocity += m_velocity * 1.5f * frametime;
m_position += m_velocity * frametime; //Position is equal to velocity * frametime

有人能帮我吗?

我认为你已经有了正确的代码,但是你缺少一个缩放因子来将导弹从船上移开:

float ScalingFactor = 100.f; //Just a guess...
Vector2D missilePosition = m_position + missileDirection*ScalingFactor;