How do I have an arrow follow different height parabolas depending on how long the player holds down a key?

Posted by Moondustt on Game Development See other posts from Game Development or by Moondustt
Published on 2013-06-26T19:24:17Z Indexed on 2013/06/26 22:30 UTC
Read the original article Hit count: 103

Filed under:
|
|
|

i'm trying to throw an arrow in my game, but i'm having a hard time trying to realize how to make a good parabola.

What I need: The more you hold "enter" stronger the arrow goes. The arrow angle will be always the same, 45 degrees.

This is what I have already have:

    private float velocityHeld = 1f;
    protected override void Update(GameTime gameTime)
    {
 private void GetKeyboardEvent()
        {
            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;

        }
       }

My question is, what do I need to do to make the arrow to go bottom as it loses velocity (timeHeld) to make a perfect parabola?

© Game Development or respective owner

Related posts about XNA

Related posts about c#