※発射角度が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