制造一种朝不断变化的方向发射的导弹
Creating a missile that fires in a ever changing direction
好的,我是一名大学编程专业的学生,在创建我的 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
谁能帮帮我?
我认为您已经有了正确的代码,但是您缺少将导弹从飞船上移开的比例因子:
float ScalingFactor = 100.f; //Just a guess...
Vector2D missilePosition = m_position + missileDirection*ScalingFactor;
好的,我是一名大学编程专业的学生,在创建我的 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
谁能帮帮我?
我认为您已经有了正确的代码,但是您缺少将导弹从飞船上移开的比例因子:
float ScalingFactor = 100.f; //Just a guess...
Vector2D missilePosition = m_position + missileDirection*ScalingFactor;