Создание ракеты, которая стреляет в постоянно меняющемся направлении

Хорошо, я студент-программист в университете, и я столкнулся с этой проблемой при создании 2D-игры Star Wars X-Wing. Корабль постоянно меняет направление, чтобы избежать входящих TieFighters, и я смог создать ракету перед X-Wing.

Проблема в том, что я не знаю, как запустить ракету в направлении корабля.

Код для размещения ракеты:

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

Может кто-нибудь мне помочь?

2

Решение

Я думаю, что у вас уже есть правильный код, но вам не хватает коэффициента масштабирования, чтобы отодвинуть ракету от корабля:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]