1 'SAVE"TABLSP1.BAS
2 'SAVE"TABLSP1.ASC",A
1000 'テーブルか サンプル1
1010 ' キー へんかん テーブル
1020 ' for MSX(RAM 8K)
1030 DEFINT A-Z:DIM TX(8),TY(8)
1040 SCREEN1,1,0:WIDTH30:COLOR15,4,3:KEY OFF:CLS
1050 RESTORE2000:A$="":FOR I=0TO7:READ B$:A$=A$+CHR$(VAL("&B"+B$)):NEXT:S
PRITE$(0)=A$
1060 RESTORE2100:FOR ST=0TO8:READ TX(ST),TY(ST):NEXT
1070 PX=120:PY=87
1080 PRINT"カーソルキーで たまを うごかせます。":PRINT"SPACE キーで しゅうりょう
します。"
1090 'LOOP
1100 FOR LP=0TO1:TIME=0:LP=-STRIG(0)
1110 PUT SPRITE0,(PX,PY),10,0
1120 ST=STICK(0)
1130 PX=PX+TX(ST):IF PX<0 OR PX>240 THEN PX=PX-TX(ST)
1140 PY=PY+TY(ST):IF PY<-1 OR PY>175 THEN PY=PY-TY(ST)
1150 FOR WT=-32768!TO-32766:WT=TIME-32768!:NEXT
1160 NEXT
1170 'LOOP おわり
1180 CLS:END
2000 'SPRITE DATA
2010 DATA 00111100
2020 DATA 01011110
2030 DATA 11111111
2040 DATA 10111111
2050 DATA 10111111
2060 DATA 10111111
2070 DATA 01111110
2080 DATA 00111100
2100 'キー へんかん テーブル
2110 DATA 0,0,0,-4,3,-3,4,0,3,3,0,4,-3,3,-4,0,-3,-3
このサンプルのみそは1030行と1040行。
黄色い玉の x、y 座標に、カーソルキーの入力方向に対応したキー変換テーブルを足すことにより、黄色い玉の新しい x、y 座標を求めています。
カーソルキーの入力方向毎にプログラムの分岐を設けたりする必要がなく、スマートになっています。
キー変換テーブルにはマイナス数値も含まれるため、例えば左方向に移動する場合は、x 座標に「マイナスの増分を足す」という形で x 座標が小さくなるようになっています。