※発射角度が0のとき右向き、…、8のとき下向き、…、16のとき左向き、…、24のとき上向き、…。
MSX(RAM 8KB 以上)で動作します。
1 'SAVE"TABLSP3.BAS
2 'SAVE"TABLSP3.ASC",A
1000 'テーブルか サンプル3
1010 ' SIN/COS テーブル
1020 ' for MSX(RAM 8K)
1030 DEFINT A-Z:DIM SN!(31),CS!(31)
1040 I=RND(-TIME)
1050 SCREEN1,0,0:WIDTH30:COLOR15,4,3:KEY OFF:CLS
1060 RESTORE1210:A$="":FOR I=0TO7:READ B$:A$=A$+CHR$(VAL("&B"+B$)):NEXT:S
PRITE$(0)=A$
1070 FOR I=0TO31:SN!(I)=SIN(2*3.141592#/32*I):CS!(I)=COS(2*3.141592#/32*I
):NEXT
1080 CX=124:CY=95
1090 FOR I=0TO28STEP4:LOCATE CS!(I)*8+14,SN!(I)*8+12:PRINT USING"##";I:NE
XT:PUTSPRITE0,(CX,CY),7,0
1100 LOCATE0,0:PRINT" ランダムに ほうこうを けっていして たまを はっしゃして
います。":PRINT" [CTRL]+[STOP]で しゅうりょうします。"
1110 'LOOP
1120 FOR L1=0TO2480STEP0
1130 AG=RND(1)*32:LOCATE0,22:PRINT USING"ANGLE=##(やく###ど)";AG,360/32*
AG
1140 MX!=CX:MY!=CY
1150 FOR L2=0TO63:TIME=0
1160 PUT SPRITE1,(MX!,MY!),10,0
1170 MX!=MX!+CS!(AG):MY!=MY!+SN!(AG)
1180 FOR WT=-32768!TO-32766:WT=TIME-32768!:NEXT
1190 NEXT
1200 NEXT
1210 'SPRITE DATA
1220 DATA 00111100
1230 DATA 01011110
1240 DATA 11111111
1250 DATA 10111111
1260 DATA 10111111
1270 DATA 10111111
1280 DATA 01111110
1290 DATA 00111100