Whats happening is that your bullets are going to fast to always hit the enemy. You can either slow down the bullets or make them bigger.
Here is an example of slowing them down
hide mouse
rem set up game arrays
dim spriteposx(200)
dim spriteposy(200)
dim weaponready(25)
dim powerupready(55)
rem load up cursor symbol
rem low hp
ink rgb(255,0,0),rgb(0,0,0)
text 0,0,"}"
get image 1,0,0,10,16
sprite 1,0,mousey(),1
size sprite 1,10,30
cls
rem med hp
ink rgb(255,255,0),rgb(0,0,0)
text 0,0,"}"
get image 2,0,0,10,16
cls
rem full hp
ink rgb(0,255,0),rgb(0,0,0)
text 0,0,"}"
get image 3,0,0,10,16
cls
rem make bullet sprites
ink rgb(255,0,0),rgb(0,0,0)
rem .
text 0,0,"."
get image 4,0,7,10,15
cls
rem :
text 0,0,":"
get image 5,0,0,10,15
cls
rem :
text 0,0,"="
get image 6,0,0,10,15
cls
rem prepare bullets
for x=2 to 20
weaponready(x)=1
spriteposy(x)=-30
sprite x,spriteposx(x),spriteposy(x),1
size sprite x,20,30
next x
rem make missle sprites
ink rgb(255,128,0),rgb(0,0,0)
rem -
text 0,0,"-"
get image 7,0,0,10,15
cls
rem >
text 0,0,">"
get image 8,0,0,10,15
cls
rem ->
text 0,0,"->"
get image 9,0,0,20,15
cls
rem prepare missles
for y=21 to 25
weaponready(y)=1
spriteposy(y)=-30
sprite y,spriteposx(y),spriteposy(y),7
size sprite y,20,30
next y
rem load missle ammo display sprite
ink rgb(255,255,0),rgb(0,0,0)
text 0,0,"*"
get image 10,0,0,10,15
cls
rem load powerup sprites
ink rgb(255,0,255),rgb(0,0,0)
rem points
text 0,0,"[$]"
get image 11,0,0,30,15
cls
rem health
text 0,0,"[+]"
get image 12,0,0,30,15
cls
rem ammo pickup
text 0,0,"[*]"
get image 13,0,0,30,15
cls
rem missle upgrade
text 0,0,"[>]"
get image 14,0,0,30,15
cls
rem gun upgrade
text 0,0,"[:]"
get image 15,0,0,30,15
cls
rem shield pickup
ink rgb(0,0,255),0
text 0,0,"[O]"
get image 16,0,0,30,15
cls
rem prepare powerups
for p=31 to 55
spriteposy(p)=-30
powerupready(p)=1
sprite p,spriteposx(p),spriteposy(p),11
show sprite p
next p
rem load up debris sprites
ink rgb(128,128,255),0
text 0,0,"/"
get image 17,0,0,10,15
cls
text 0,0,"\"
get image 18,0,0,10,15
cls
text 0,0,"|"
get image 19,0,0,10,15
cls
text 0,0,"'"
get image 20,0,0,10,15
cls
rem prepare debris
for d=61 to 100
spriteposx(d)=rnd(2000)
spriteposy(d)=rnd(480)
sprite d,spriteposx(d),spriteposy(d),int((d-60)/10)+17
size sprite d,20,30
show sprite d
next d
rem initialize variables
health=3
bullvl=1
msllvl=1
ammo=3
rem print ammo indicator
ink rgb(255,255,0),0
print "ammo:"
rem main game loop
do
rem declare mouseclick variable
mouseclick=mouseclick()
rem draw ship
sprite 1,40,mousey(),health
show sprite 1
rem manage bullets
justshot=0
for x=2 to 20
if mouseclick=1 and llc=0 and justshot=0
if weaponready(x)=1
spriteposy(x)=mousey()
spriteposx(x)=40
weaponready(x)=0
show sprite x
justshot=1
endif
endif
rem move bullet
if weaponready(x)=0
spriteposx(x)=spriteposx(x)+2
show sprite x
if spriteposx(x)>640 then weaponready(x)=1
rem check for debris collision
for o=61 to 100
if sprite hit(x,o)=1
weaponready(x)=1
hide sprite x
score=score+1
rem seed random drop
releasepowerup(rnd(100),spriteposx(o),spriteposy(o))
rem reposition debris sprite
spriteposx(o)=rnd(360)+640
spriteposy(o)=rnd(480)
endif
next o
endif
rem draw bullet
sprite x,spriteposx(x),spriteposy(x),(bullvl+3)
next x
rem manage missles
justshotmsl=0
for y=21 to 25
if spacekey()=1 and lls=0 and justshotmsl=0 and ammo>0
if weaponready(y)=1
spriteposy(y)=mousey()
spriteposx(y)=40
weaponready(y)=0
justshotmsl=1
dec ammo
show sprite y
endif
endif
rem move missle
if weaponready(y)=0
show sprite y
spriteposx(y)=spriteposx(y)+10
if spriteposx(y)>640 then weaponready(y)=1
rem check for debris collision
for s=61 to 100
if sprite hit(y,s)=1
weaponready(y)=1
hide sprite y
score=score+1
rem seed random drop
releasepowerup(rnd(100),spriteposx(o),spriteposy(o))
rem reposition debris sprite
spriteposx(s)=rnd(360)+640
spriteposy(s)=rnd(480)
endif
next s
endif
rem draw missle
sprite y,spriteposx(y),spriteposy(y)+7,(msllvl+6)
next y
rem manage ammo counter
for a=1 to 5
rem draw ammo counter (one * for each missle)
sprite 25+a,(40+(10*a)),((ammo+1<=a)*-15),10
next a
rem manage powerups
for p=31 to 55
if powerupready(p)=0
spriteposx(p)=spriteposx(p)-3
if spriteposx(p)<-10 then powerupready(p)=1 : spriteposy(p)=-30
endif
rem check for powerup collision
if sprite hit(p,1)=1
powerupready(p)=1
spriteposy(p)=-30
rem decide what powerup to award
if sprite image(p)=11 then score=score+50
if sprite image(p)=12 and health<3 then inc health
if sprite image(p)=13 and ammo<5 then inc ammo
endif
sprite p,spriteposx(p),spriteposy(p),sprite image(p)
next p
rem manage debris
for d=61 to 100
rem move debris
spriteposx(d)=spriteposx(d)-3
rem reseed debris if nesecary
if spriteposx(d)<0 then spriteposx(d)=640+rnd(360) : spriteposy(d)=rnd(480)
rem check for collision
if sprite hit(1,d)=1
dec health
spriteposx(d)=rnd(360)+640
spriteposy(d)=rnd(480)
endif
rem draw debris
sprite d,spriteposx(d),spriteposy(d),int((d-60)/10)+17
next d
rem store last loop variables
llc=mouseclick()
lls=spacekey()
rem refresh screen
sync
loop
rem functions***************************************************************
rem releasepowerup function!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
function releasepowerup(c,x,y)
if c<5
if (c-0)*(c-1)*(c-2)=0 then image=11
if c=3 then image=12
if c=4 then image=13
for o=31 to 55
if powerupready(o)=1
sprite o,x,y,image
powerupready(o)=0
spriteposx(o)=x
spriteposy(o)=y
exit
endif
next o
endif
endfunction
The happenings of tommorow are behind us now