This is what I ended up with which only does a single check now, but I think it's an improvement:

`100 ' Setup Inks and Screen Mode`

110 INK 0,0

120 INK 1,26

130 INK 2,20

140 INK 3,18

150 BORDER 11

160 PAPER 0

170 PEN 1

180 MODE 1

200 ' Define Characters & Objects

210 DEFINT a-z

220 s$=CHR$(143)

230 a$="@"

240 b$="-"

250 x=1

260 y=1

270 DIM bx(2)

280 DIM by(2)

290 b=1

300 t=0

310 sc=0

320 ay=1+INT(RND*23)

330 ax=37

340 GOSUB 810 ' Print Ship

350 GOSUB 1010 ' Print Alien

360 LOCATE 1,25

370 PRINT"Score:"

400 ' Main Loop

410 WHILE 1

420 IF INKEY(1)<>-1 AND x<30 THEN GOSUB 910:x=x+1:GOSUB 810

430 IF INKEY(8)<>-1 AND x>1 THEN GOSUB 910:x=x-1:GOSUB 810

440 IF INKEY(0)<>-1 AND y>1 THEN GOSUB 910:y=y-1:GOSUB 810

450 IF INKEY(2)<>-1 AND y<24 THEN GOSUB 910:y=y+1:GOSUB 810

460 GOSUB 710

470 GOSUB 1140 : GOSUB 1010 ' Delete & Reprint Alien

475 GOSUB 610

480 IF INKEY(47)<>-1 AND t<>2 THEN t=t+1:bx(t)=x+1:by(t)=y

490 IF t<>0 THEN GOSUB 1210

500 WEND

600 ' Has bullet or alien collided?

610 IF by(1)<>ay THEN IF by(2)<>ay THEN GOSUB 1210:RETURN:ELSE GOSUB 611:RETURN

611 FOR n1=1 TO t

612 IF bx(n1)=ax THEN GOSUB 1410

613 IF bx(n1)+1=ax THEN LOCATE bx(n1),by(n1):PRINT" ";:bx(n1)=bx(n1)+1:LOCATE bx(n1),by(n1):PRINT b$;:GOSUB 1410

614 NEXT n1

620 RETURN

700 ' Has Alien Collided with Ship?

710 IF (x=ax) AND (y=ay) THEN GOSUB 1410:LOCATE 15,12:PRINT"You're Dead!":END

720 RETURN

800 ' Display Ship

810 LOCATE x,y

820 PEN 1

830 PRINT s$;

840 RETURN

900 ' Delete Ship

910 LOCATE x,y

920 PRINT" ";

930 RETURN

1000 ' Display and Move Alien

1010 LOCATE ax,ay

1020 PEN 2

1030 PRINT a$;

1040 ax=ax-1

1050 GOSUB 710

1060 WHILE ax=0

1070 LOCATE 1,ay

1080 PRINT" ";

1090 ax=37

1100 ay=1+INT(RND*23)

1110 WEND

1120 ' GOSUB 610

1130 RETURN

1140 LOCATE ax+1,ay

1150 PRINT" ";

1160 RETURN

1200 ' Routine to Move Shots Fired

1210 FOR n=b TO t

1220 LOCATE bx(n),by(n)

1230 PRINT" ";

1240 PEN 3

1250 bx(n)=bx(n)+1

1260 LOCATE bx(n),by(n)

1270 PRINT b$;

1280 IF bx(n)=38 THEN LOCATE 38,by(n):PRINT" ";:b=b+1

1290 NEXT n

1300 IF bx(n-1)=38 AND b=3 THEN GOSUB 1590

1310 ' GOSUB 610

1320 RETURN

1400 ' Death Sequence for Alien or Ship should they Collide

1410 LOCATE ax,ay

1420 PRINT" ";CHR$(238);

1430 sc=sc+20

1440 LOCATE 8,25

1450 PRINT sc;

1460 ax=39

1470 ay=1+INT(RND*23)

1480 FOR v=15 TO 0 STEP -1

1490 BORDER 6

1500 SOUND 1,0,3,v,,,31

1510 BORDER 11

1520 SOUND 2,1000,3,v,,,31

1530 NEXT v

1540 FOR c=1 TO t

1550 LOCATE bx(c),by(c)

1560 PRINT" ";

1570 bx(c)=0:by(c)=0

1580 NEXT c

1590 b=1:t=0

1600 RETURN