テーブル化サンプルプログラム3


内容

画面中央の水色の玉から、黄色い弾を発射します。 発射方向は全てで32方向で、その中からランダムに発射方向を決めます。 発射角度(発射方向)は画面下に表示されます。
y 座標は画面下向きで、それに伴い、角度も時計周りに大きくなっていくことに注意して下さい。

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

主な変数

プログラム解説


戻る

MSXの適当手帳 MSX駅 西山駅