我试图在我的 XNA 游戏中投掷箭,但我很难尝试实现一条好的抛物线。
我需要的:
- 你握得越Enter强,箭头越走。
- 箭头角度将始终相同,为45 度。
这是我已经拥有的:
private float velocityHeld = 1f;
protected override void Update(GameTime gameTime)
{
if (Keyboard.GetState().IsKeyDown(Keys.Enter) && !released)
{
timeHeld += velocityHeld;
holding = true;
}
else
{
if (holding)
{
released = true;
holding = false;
lastTimeHeld = timeHeld;
}
}
if (released && timeHeld > 0)
{
float alpha = MathHelper.ToRadians(45f);
double vy = timeHeld * Math.Sin(alpha);
double vx = timeHeld * Math.Cos(alpha);
ShadowPosition.Y -= (int)vy;
ShadowPosition.X += (int)vx;
timeHeld -= velocityHeld;
}
else
{
released = false;
}
}
我的问题是,我需要做些什么才能使箭头在失去速度(timeHeld
)以形成完美抛物线时落到底部?