好的,我是大学的编程学生,我在制作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
任何人都可以帮助我吗?
答案 0 :(得分:1)
我认为你已经拥有了正确的代码,但是你错过了一个缩放因子来将导弹从船上移开:
float ScalingFactor = 100.f; //Just a guess...
Vector2D missilePosition = m_position + missileDirection*ScalingFactor;