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


内容

キー変換テーブルを用いて、スプライトキャラクターを動かします。
MSX(RAM 8KB 以上)で動作します。
カーソルキーで画面上の黄色い玉を動かせます。

プログラムリスト

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

スプライトの y 座標について

スプライトの、実際の表示座標の y 座標は、指定した座標より1多くなります(例えば表示座標の y 座標を16としたければ、y 座標の指定は15としなければならない)。 このサンプルでもその分を考慮して作られています。
戻る

MSXの適当手帳 MSX駅 西山駅