Cannot get laser to fire in 2D space invaders like game
<p>Recently I've been working on a Space Invaders like game, to help me boost my programming Skills. I've fallen into a few problems. I've been researching for a few days now, in how you would go about making a laser fire, on keyUp. </p>

<p>This is my attempt so far; I can get the laser to fire, but it has stumbled me why the laser doesn't carry on moving up...</p>

<pre><code>using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace SpaceInvaders
{
    public partial class Form1 : Form
    {
        public int spriteX = 226;
        public int spriteY = 383;
        bool bulletFire = false;
        int fireTimer = 8;
        int laserFired;

        public Form1()
        {
            InitializeComponent();
        }

        private void exitToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        public void laserFire()
        {       
            //on laser fire i wont the bulle to move up while bullet timer is enabled
            //moving up slowly with set intervals
            while (bulletTimer.Enabled == true)
            {
                PictureBox laser = new PictureBox();
                laser.BackColor = Color.Chartreuse;
                laser.Width = 5;
                laser.Height = 30;
                laserFired = spriteY;
                laserFired = laserFired - 10;
                this.Controls.Add(laser);
                laser.Location = new Point(spriteX, laserFired);
            }
       }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            //Fire bullet
            if (e.KeyCode == Keys.Up)
            {
                bulletFire = true;

                if (bulletFire == true)
                {
                    laserFire();
                    bulletTimer.Enabled = true;
                }
            }

            //Controls Right movement
            if (spriteX &lt;448)
            {
                if (e.KeyCode == Keys.Right)
                {
                    spriteX = spriteX + 20;
                }
            }

            //Controls Left Movement
            if (spriteX &gt; 0)
            {
                if (e.KeyCode == Keys.Left)
                {
                    spriteX = spriteX - 20;
                }
            }

            //Points sprite to new location
            pctSprite.Location = new Point(spriteX, spriteY);
        }

        private void bulletTimer_Tick(object sender, EventArgs e)
        {
            if (fireTimer == 0)
            {
                bulletTimer.Enabled = false;
            }
            else { fireTimer = fireTimer - 1; }
        }
    }
}
</code></pre>

<p>Help or advice would be much appreciated thanks.</p>
