As a tip, I would avoid deleting sprites and creating them while the game runs. I just hide the sprites, and reposition as needed in Obliterator (my current project, listed in shooter WIP, on the showcase forum). I always find things go far slower creating/cloning and deleting sprites.
You could also allow more bullets than one at a time, if you have a count you can cycle through. So first press sends bullet one off. A second press bullet 2.. Once you get to the max bullets you loop around and re-start from the first.
if fire>0
for n=1 to 20
if getspritevisible(n)=1
setspriteposition(n,bullet[n,1],bullet[n,2])
bullet[n,1]=bullet[n,1]+10
if bullet[n,1]>700 then setspritevisible(n,0)
endif
endif
next n
endif
That bit of code is the sort of thing I mean. You would have to also have a little loop to check the actual button press, position the bullet at the start position (your ship co-ords), increase the bullet count and set it to be visible. Then the code snippet above will automatically move it right until it reaches the edge of the screen. I use an array to hold the x,y co-ords and update that, but you could easily use getspritex() command instead, and add a speed value to it instead.