制造一个在不断变化的方向上发射的导弹

时间:2015-09-24 21:00:53

标签: c++ vector 2d velocity angle

好的,我是大学的编程学生,我在制作2D星球大战X翼游戏时遇到过这个问题。船舶不断改变方向,以避免传入的TieFighters,我已经能够在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

任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

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

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