10 ' 加速度なんて
20 ' 1989/10/3/Wed - 13/Fri
30 *MAIN
40 GOSUB *INITIARIZE
50 *MLOOP
60 WHILE FAULT
70    GOSUB *KEYIN
80    GOSUB *XMOVE
90    GOSUB *YMOVE
100    GOSUB *REPUT
110    GOSUB *WAIT
120 WEND
130 '
140 *INITIARIZE
150 DEFINT D
160 CLS
170 SCREEN@ 1
180 SPRITE ON
190 SPRITE SCREEN 1
200 DIM SC%(255)
210 GOSUB *DEFSPRITE
220 '
230 FAULT=-1
240 STK=1
250 T=.1!
260 A=10
270 L=10
280 R=240
290 U=0
300 D=224
310 KL=.8!
320 KR=.8!
330 KU=.8!
340 KD=.8!
350 '
360 VX=0
370 VY=0
380 DX=(R-L)/2+L
390 DDX=DX
400 DY=(D-U)/2+U
410 DDY=DY
420 DEF SPRITE 1,0,(DX,DY),0
430 SPRITE 0,0,1
440 RETURN
450 '
460 *KEYIN
470 IN=PAD(STK)
480 RETURN
490 '
500 *XMOVE
510 AX=A*((INSTR(" 6 7 8",STR$(IN))>0)-(INSTR(" 2 3 4",STR$(IN))>0))
520 DXX=DX+VX*T+AX*T^2/2
530 IF DXX<L THEN TT=T*(L-DXX)/(DX-DXX):VX=KL*-(VX+AX*(T-TT)):DX=L+VX*TT:                     RETURN
540 IF DXX>R THEN TT=T*(DXX-R)/(DXX-DX):VX=KR*-(VX+AX*(T-TT)):DX=R+VX*TT:                     RETURN
550 DX=DXX
560 VX=VX+AX*T
570 RETURN
580 '
590 *YMOVE
600 AY=A*((INSTR(" 8 1 2",STR$(IN))>0)-(INSTR(" 4 5 6",STR$(IN))>0))+9.8!
610 DYY=DY+VY*T+AY*T^2/2
620 IF DYY<U THEN TT=T*(U-DYY)/(DY-DYY):VY=KU*-(VY+AY*(T-TT)):DY=U+VY*TT:                     RETURN
630 IF DYY>D THEN TT=T*(DYY-D)/(DYY-DD):VY=KD*-(VY+AY*(T-TT)):DY=D+VY*TT:                     RETURN
640 DY=DYY
650 VY=VY+AY*T
660 RETURN
670 '
680 *REPUT
690 SPRITE 6,0,DX-DDX,DY-DDY
700 DDX=DX
710 DDY=DY
720 RETURN
730 '
740 *WAIT
750 FOR WI=0 TO 10
760 NEXT WI
770 RETURN
780 '
790 *DEFSPRITE
800 FOR SI=0 TO 255
810    READ SC%(SI)
820 NEXT SI
830 DEF SPRITE 0,0,SC%,1
840 RETURN
850 REM SPRITE(2) No00
860 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
870 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
880 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
890 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
900 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H1026
910 DATA &H1026, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000, &H0000
920 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H1026, &H1026, &H1026
930 DATA &H1026, &H1026, &H1026, &H0000, &H0000, &H0000, &H0000, &H0000
940 DATA &H0000, &H0000, &H0000, &H0000, &H24AA, &H24AA, &H24AA, &H24AA
950 DATA &H24AA, &H24AA, &H24AA, &H24AA, &H0000, &H0000, &H0000, &H0000
960 DATA &H0000, &H0000, &H352E, &H352E, &H352E, &H352E, &H352E, &H352E
970 DATA &H352E, &H352E, &H352E, &H352E, &H352E, &H0000, &H0000, &H0000
980 DATA &H0000, &H24AA, &H352E, &H2FEB, &H0C6B, &H2FEB, &H352E, &H352E
990 DATA &H45B3, &H45B3, &H2FEB, &H0C6B, &H2FEB, &H24AA, &H0000, &H0000
1000 DATA &H1026, &H24AA, &H2FEB, &H2FEB, &H2FEB, &H2FEB, &H2FEB, &H5215
1010 DATA &H5215, &H5215, &H2FEB, &H2FEB, &H2FEB, &H2FEB, &H24AA, &H0000
1020 DATA &H1026, &H2FEB, &H2FEB, &H352E, &H45B3, &H5215, &H2FEB, &H5A97
1030 DATA &H5A97, &H2FEB, &H5215, &H45B3, &H352E, &H2FEB, &H2FEB, &H1026
1040 DATA &H1026, &H24AA, &H352E, &H352E, &H45B3, &H5215, &H5A97, &H6AFF
1050 DATA &H6AFF, &H5A97, &H5215, &H45B3, &H352E, &H24AA, &H24AA, &H1026
1060 DATA &H1026, &H24AA, &H72CB, &H72CB, &H45B3, &H5215, &H5A97, &H6AFF
1070 DATA &H6AFF, &H5A97, &H5215, &H72CB, &H72CB, &H72CB, &H24AA, &H1026
1080 DATA &H1026, &H24AA, &H24AA, &H352E, &H72CB, &H5215, &H5A97, &H5A97
1090 DATA &H5A97, &H5A97, &H72CB, &H45B3, &H352E, &H24AA, &H24AA, &H0000
1100 DATA &H0000, &H24AA, &H24AA, &H352E, &H45B3, &H72CB, &H5215, &H5215
1110 DATA &H5215, &H72CB, &H45B3, &H45B3, &H352E, &H24AA, &H0000, &H0000
1120 DATA &H0000, &H0000, &H24AA, &H352E, &H45B3, &H45B3, &H72CB, &H45B3
1130 DATA &H72CB, &H45B3, &H45B3, &H45B3, &H352E, &H24AA, &H0000, &H0000
1140 DATA &H0000, &H0000, &H0000, &H352E, &H352E, &H352E, &H352E, &H72CB
1150 DATA &H352E, &H352E, &H352E, &H352E, &H352E, &H0000, &H0000, &H0000
1160 DATA &H0000, &H0000, &H0000, &H0000, &H0000, &H1026, &H1026, &H1026
1170 DATA &H1026, &H1026, &H1026, &H0000, &H0000, &H0000, &H0000, &H0000
