100 SCREEN 5 110 '背景グラデーション定義 120 FOR I=0 TO 222 130 K=I+RND(16) 140 TX$=TX$+STRW$(1,RGBADD(RGB(0,0,5),K/8,K/8,K/8)) 150 NEXT 160 COLOR,,,TX$+STRW$(1,0) 170 '床面キャラクタ定義 180 TX$="" 190 FOR J=0 TO 64*8-1 200 TX$=TX$+CHR$(RND(8)) 210 NEXT 220 SETCHR 8, 8,WADD$(TX$,&H808) 230 SETCHR 8,16,WADD$(TX$,&H1010) 240 '床面パレット定義 250 FOR I=0 TO 7 260 PALETTE 8,I+ 8,RGB( 3+RND(2), 3+RND(2), 3+RND(2)) 270 PALETTE 8,I+16,RGB(28+RND(2),28+RND(2),28+RND(2)) 280 NEXT 290 '床面描画 300 FOR I=0 TO 179 310 FOR J=0 TO 179 320 PUTCHR 8,(I,J),(16+RND(8))*2 330 NEXT 340 NEXT 350 FOR I=0 TO 49 360 FOR J=180 TO 180+49 370 PUTCHR 8,(I,J),(16+RND(8))*2 380 NEXT 390 NEXT 400 FOR K=0 TO 11 410 READ X1,Y1,X2,Y2 420 FOR I=X1 TO X2 430 FOR J=Y1 TO Y2 440 PUTCHR 8,(I,J),(8+RND(8))*2 450 NEXT 460 NEXT 470 NEXT 480 '床ラインデータ 490 DATA 0,180,49,181 500 DATA 29, 40,30,154 510 DATA 15,154,44,155 520 DATA 15, 89,44, 90 530 DATA 45,24,119,25 540 DATA 59,10, 60,39 550 DATA 133, 39,134,179 560 DATA 118, 50,147, 51 570 DATA 118,174,147,175 580 DATA 4,10,5,39 590 DATA 4,75,5,104 600 DATA 4,140,5,169 610 '段差ポリゴン定義 620 SETVERTEX 0,40 630 FOR I=1 TO 0 STEP -1 640 FOR J=0 TO 9 650 SETVERTEX (0,-40*I,-J*100),(280,-40*I,-J*100) 660 NEXT 670 NEXT 680 SETPOLYGON 0,30,0 690 FOR I=0 TO 8 700 SETPOLYGON,(I*2,I*2+1,I*2+3,I*2+2) 710 NEXT 720 SETPOLYGON,(8*2+2,8*2+3,8*2+3+20,8*2+2+20) 730 SETPOLYGON,(1,0,20,21) 740 FOR I=0 TO 8 750 SETPOLYGON,(I*2,I*2+2,I*2+2+20,I*2+20) 760 SETPOLYGON,(I*2+1,I*2+3,I*2+3+20,I*2+1+20) 770 NEXT 780 TX$="" 790 FOR I=0 TO 64*64-1 800 TX$=TX$+STRW$(1,&H8000+RGB(28+RND(2),28+RND(2),28+RND(2))) 810 NEXT 820 SETTEX 0,64,64,32768,TX$ 830 TX$="" 840 FOR I=0 TO 64*64-1 850 TX$=TX$+STRW$(1,&H8000+RGB(25+RND(2),25+RND(2),8+RND(2))) 860 NEXT 870 SETTEX 1,64,64,32768,TX$ 880 SETATR 0,30 890 FOR I=0 TO 8:SETATR (0,1,1,0,0,8):NEXT 900 FOR I=0 TO 20:SETATR (0,1,2,1,0,8):NEXT 910 OBJATR 1,0,0:OBJLINK 1,0:OBJTYPE 1,4 920 OBJ(1,@XS)=&H0.FFFC/10*8,&H0.FFFC/10*8,&H0.FFFC/10*8 930 OBJ(1,@XP)=-1024+600/10*8,,1024-500/10*8 940 X = 300/10*8-1024 : Y = -2200/10*8 + 1024 950 T = .25 960 '床面ポリゴン定義 970 SETVERTEX 1,22 980 FOR J=0 TO 10 990 SETVERTEX (170*XCOS(.25*J/10),0,170*XSIN(.25*J/10)) 1000 SETVERTEX (150*XCOS(.25*J/10),0,150*XSIN(.25*J/10)) 1010 NEXT 1020 SETPOLYGON 1,10,1 1030 FOR I=0 TO 9 1040 SETPOLYGON,(I*2,I*2+1,I*2+3,I*2+2) 1050 NEXT 1060 TX$="" 1070 FOR I=0 TO 16*16-1 1080 TX$=TX$+STRW$(1,&H8000+RGB(3+RND(2),3+RND(2),3+RND(2))) 1090 NEXT 1100 SETTEX 2,16,16,32768,TX$ 1110 SETATR 1,10,(0,1,3,2,0,0) 1120 OBJATR 2,1,1:OBJLINK 2,0:OBJTYPE 2,4 1130 OBJ(2,@XS)=&H0.FFFC/10*8,&H0.FFFC/10*8,&H0.FFFC/10*8 1140 OBJ(2,@XP)=-1024+1180/10*8,,1024-410/10*8 1150 OBJATR 3,1,1:OBJLINK 3,0:OBJTYPE 3,4 1160 OBJ(3,@XS)=&H0.FFFC/10*8,&H0.FFFC/10*8,&H0.FFFC/10*8 1170 OBJ(3,@XP)=-1024+460/10*8,,1024-410/10*8 1180 OBJ(3,@YR)=-.25 1190 *LOOP 1200 P=PAD(0,1) 1210 IF P AND @PAD_A THEN V=V+.1 ELSE V=V+(V>0)/10 1220 IF P AND @PAD_LEFT THEN T=T+.002 1230 IF P AND @PAD_RIGHT THEN T=T-.002 1240 X=X+V*XCOS(T) 1250 Y=Y+V*XSIN(T) 1260 IF P AND @PAD_B THEN SFT = SFT + 10 ELSE SFT = SFT + 10*(SFT>0) 1270 CAMERA (X,-80-SFT,Y) TO (X+XCOS(T)*200,0,Y+XSIN(T)*200),BG 1280 VSYNC 1290 LOCATE 1,1:PRINT (X+1024)/8*10,(1024-Y)/8*10 1300 GOTO *LOOP