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 座標が小さくなるようになっています。