REM 944BASIC 'Path Tracker v0.1' REM ペンで描いた軌跡で REM スプライト等を動かす REM スプライト用画像の読み込み SETPAGE 2 BITMAP "F1:\944BASIC\KALGPT01.BMP",0,0 FONT 96 REM 初期化 *START COLORFG 0,0,0:COLORBG 255,255,255 CLS MAX=128 DIM MX(MAX,1) MESSAGE '記録開始 - ペンを動かして、左上の数字が128になるか、[決定]を押すと記録終了' I=0: II=0 REM ペンが使用されたら記録開始 *WT SYNC IF PEN=2 THEN GOTO *REC GOTO *WT REM ペンの軌跡を記録 *REC SYNC REM とりあえず絶対座標を記録 REM 将来的には相対座標にした方が REM 使い道があるかも IF (PEN=2)*((PENX<>MX(II,0))+(PENY<>MX(II,1))) THEN MX(I,0)=PENX: MX(I,1)=PENY:LINE MX(II,0),MX(II,1),MX(I,0),MX(I,1): II=I:I=I+1 REM 最大ステップ数(MAX)を越えるか REM 決定ボタンで記録終了 IF (I>MAX)+(PADA) THEN MAX=I: GOTO *EXITREC REM WAITを入れた方がいいみたい REM WAITなしでは記録が密になり REM 過ぎるようだ WAIT 1 REM ステップを表示 LOCATE 0,0: COLORFG 255,255,255 PRINT ' ' LOCATE 0,0: COLORFG 0,0,0 PRINT I GOTO *REC *EXITREC COLORBG 0,0,0:COLORFG 255,255,255 CLS FOOTER ' [決定]-再生, [逆送り]-記録に戻る ' *LOOP SYNC IF PADA THEN GOTO *PLAY IF PADB THEN GOTO *START GOTO *LOOP REM 再生 *PLAY SYNC FOR I=0 TO MAX-1 LOCATE 0,0: COLORFG 0,0,0 PRINT ' ' LOCATE 0,0: COLORFG 255,255,255 PRINT MX(I,0); PRINT ' : '; PRINT MX(I,1) SPRITE 1,1,1, MX(I,0),MX(I,1),0,0,24,24 REFRESH 0,0,0,0,240,320 REM 文字を使う場合は次のように REM GCURSOR MX(I,0),MX(I,1) REM PRINT '' REM WAIT 1: CLS NEXT I GOTO *EXITREC