10 ' 20 ' 疑似平面3D 30 ' Programed by Y.Kumagai, ClockRoom Software 1998 40 ' 50 ' 初期化 60 '------------------------------------------------------------------ 70 CLEAR,,512,4*1024*1024,1024,0 80 DEFINT A-Z 90 '------------------------------------------------------------------ 100 ' 110 ' 配列定義 120 '------------------------------------------------------------------ 130 DIM MAPING&(159,119) 140 DIM SOURCE_A(159,960),SOURCE_B(159,960) 150 DIM RESULT_A(159,119),RESULT_B(159,119) 160 '------------------------------------------------------------------ 170 ' 180 ' 画面設定 190 '------------------------------------------------------------------ 200 SCREEN 0 210 SCREEN@1 220 COLOR 7,0,0,0 230 CLS 240 VIEW(0,0)-(511,255) 250 WINDOW(0,0)-(511,255) 260 '------------------------------------------------------------------ 270 ' 280 ' ファイル読み込み 290 '------------------------------------------------------------------ 300 LOADM"3DFIELD.REX",0 310 LOAD@"MAPING02.DAT",MAPING& 320 '------------------------------------------------------------------ 330 ' 340 ' 前段処理 350 '------------------------------------------------------------------ 360 LINE(0,0)-(319,240),PSET,[13*8,5*8,31*8],BF 370 FOR I=0 TO 3 380 GET@A( 0,0)-(159,240),SOURCE_A,240*160*I 390 GET@A(160,0)-(319,240),SOURCE_B,240*160*I 400 NEXT 410 ' 420 LOAD@"FIELD.TIF" 430 GET@A( 0,0)-(159,239),SOURCE_A,240*160:AAA=SOURCE_A(0,240) 440 GET@A(160,0)-(319,239),SOURCE_B,240*160 450 CALLM 0,1,VARPTR(SOURCE_A(0,240)) 460 CALLM 0,1,VARPTR(SOURCE_A(0,360)) 470 ' 480 FOR I=0 TO 119 490 LINE(0,I)-(319,I),PSET,[15+I*2,15+I*2,255] 500 NEXT 510 ' 520 RA&=VARPTR(RESULT_A(0,0)) 530 RB&=VARPTR(RESULT_B(0,0)) 540 MP&=VARPTR(MAPING&(0,0)) 550 '------------------------------------------------------------------ 560 ' 570 ' メインルーチン 580 '------------------------------------------------------------------ 590 *メイン 600 FOR I=0 TO 464 STEP 16 610 A&=VARPTR(SOURCE_A(0,I)) 620 CALLM 0,0,A&,RA&,MP& 630 CALLM 0,1,RA& 640 A&=VARPTR(SOURCE_B(0,I)) 650 CALLM 0,0,A&,RB&,MP& 660 PUT@A( 0,120)-(159,239),RESULT_A 670 PUT@A(160,120)-(319,239),RESULT_B 680 NEXT 690 ' 700 FOR I=480 TO 16 STEP -16 710 A&=VARPTR(SOURCE_A(0,I)) 720 CALLM 0,0,A&,RA&,MP& 730 CALLM 0,1,RA& 740 A&=VARPTR(SOURCE_B(0,I)) 750 CALLM 0,0,A&,RB&,MP& 760 PUT@A( 0,120)-(159,239),RESULT_A 770 PUT@A(160,120)-(319,239),RESULT_B 780 NEXT 790 GOTO *メイン 800 '------------------------------------------------------------------