home *** CD-ROM | disk | FTP | other *** search
- 10 '***************************************************************
- 11 '** スプライトデ-タの保存、読み込み、DEF SPRITE 0 までの **
- 12 '** 定義をするプログラムです。 **
- 29 '***************************************************************
- 30 'main
- 50 '
- 70 CLOSE #1 : CLOSE #2
- 90 CLEAR : COLOR 7
- 95 DIM HAI%(1000),A(800)
- 110 CLS
- 170 '**************************************************************
- 190 LOCATE 3,3 : PRINT "******************************************"
- 210 LOCATE 3,4 : PRINT "** **"
- 230 LOCATE 3,5 : PRINT "** 1. スプライトの読み込み&定義 **"
- 270 LOCATE 3,6 : PRINT "** **"
- 290 LOCATE 3,7 : PRINT "** 2. スプライトのデ-タ保存 **"
- 310 LOCATE 3,8 : PRINT "** **"
- 330 LOCATE 3,9 : PRINT "** 3. サブプログラム **"
- 350 LOCATE 3,10: PRINT "** **"
- 370 LOCATE 3,11: PRINT "** E. 終わり **"
- 372 LOCATE 3,12: PRINT "** **"
- 374 LOCATE 3,13: PRINT "******************************************"
- 375 LOCATE 3,15
- 390 INPUT "番号を選んで下さい ";BAN$
- 393 IF BAN$="1" THEN GOTO *SYL1
- 395 IF BAN$="2" THEN GOTO *SYL2
- 397 IF BAN$="3" THEN GOTO *SYL2
- 398 IF BAN$="E" OR BAN$="e" THEN END
- 400 GOTO 110
- 401 ' スプライト ノ ヨミコミ テイギ ノ コントロ-ル
- 403 *SYL1
- 450 INPUT "ファイル名 ";FL$ '----ヨミコミ ファイル メイ
- 460 INPUT "ドライブ名 ";DR$
- 470 GFLL$=DR$+":"+FL$
- 475 PRINT "TOWNS基本ソフトのエディタでセ-ブしたファイル(T)"
- 480 PRINT "(2)のデ-タ保存でセ-ブしたファイル (S)"
- 490 INPUT "ファイル形式(T),(S)";BAN2$
- 493 IF BAN2$="T" OR BAN2$="t" THEN GOSUB *SPRGT3
- 494 IF BAN2$="S" OR BAN2$="s" THEN GOSUB *SPRGT1
- 495 GOTO *SYL3
- 497 '---------- ガゾウ ノ ヨミコミ
- 500 *SYL2
- 502 '
- 503 INPUT "画像ファイル名 ";FL$
- 505 INPUT "ドライブ名 ";DR$
- 506 LFLL$=DR$+":"+FL$
- 507 IF BAN$="3" THEN GOTO 610
- 509 '
- 510 INPUT "セ-ブファイル名 ";FL$
- 515 INPUT "ドライブ名 ";DR$
- 520 SFLL$=DR$+":"+FL$
- 530 INPUT "BASICデ-タ文(D) or 外部ファイル(F) ";DF$
- 550 IF DF$="F" OR DF$="f" THEN GOTO 610
- 555 IF DF$="D" OR DF$="d" THEN GOTO 610
- 560 GOTO 530
- 570 'INPUT "よろしいですか ";ANS$
- 590 'IF ANS$="Y" OR ANS$="y" OR ANS$="" THEN GOTO 610 ELSE GOTO 110
- 610 COLOR 1
- 630 SCREEN@ 1
- 710 LOAD@ LFLL$
- 750 XSS=0 : YSS=0 : GYO=40000
- 870 GOSUB *MSPRO
- 880 IF BAN$="3" THEN GOSUB *SPRGT2 : GOTO *SYL3
- 1030 '
- 1050 IF DF$="D" OR DF$="d" THEN GOSUB *SPRSV1
- 1070 IF DF$="F" OR DF$="f" THEN GOSUB *SPRSV2
- 1090 GOTO 110
- 1130 '--------- デモ 、 ガイブ プログラム ノ キドウ
- 1150 *SYL3
- 1155 CLS
- 1170 INPUT "サンプル(S),サブプログラム名";FL$
- 1190 IF FL$="S" OR FL$="s" THEN FL$="SPRDM1.BAS"
- 1210 CHAIN FL$,10000,ALL
- 1390 GOTO 110
- 1410 '
- 1430 END
- 1450 '###############################################################
- 1470 '
- 1490 '===== マウスによる範囲の指定 サブル-チン ================
- 1510 *MSPRO
- 1530 '--- START POINT
- 1550 MOUSE 0 : MOUSE 1,0,0,1
- 1570 MOUSE 4,0,0,319,239
- 1590 XSS=MOUSE(0) : YSS=MOUSE(1)
- 1610 LOCATE 0,22 : PRINT "START=(";XSS;",";YSS;")";
- 1630 '
- 1650 IF MOUSE(2,0)<>-1 THEN GOTO 1570
- 1670 XSS=MOUSE(4,0) : YSS=MOUSE(5,0)
- 1690 MOUSE 4,XSS,YSS,319,239
- 1710 '
- 1730 IF MOUSE(2,0)=-1 THEN GOTO 1730
- 1750 LOCATE 0,22 : PRINT "START=(";XSS;",";YSS;")";
- 1770 '----- END POINT
- 1830 '
- 1850 XEE=MOUSE(0) : YEE=MOUSE(1)
- 1870 LOCATE 0,23 : PRINT "END =(";XEE;",";YEE;")";
- 1890 XKAI=INT((XEE-XSS)/16)+1
- 1910 YKAI=INT((YEE-YSS)/16)+1 : XY=XKAI*YKAI
- 1930 LOCATE 0,24 : PRINT "X=";XKAI;" : Y=";YKAI;" : スプライト=";XY;
- 1970 LINE(XSS-1,YSS-1)-(XEE+1,YEE+1),XOR,7,B
- 1990 LINE(XSS-1,YSS-1)-(XEE+1,YEE+1),XOR,7,B
- 2030 IF MOUSE(2,1)=-1 THEN GOTO 1590
- 2050 IF MOUSE(2,0)=0 THEN GOTO 1850
- 2090 XEE=XSS+XKAI*16-1 : YEE=YSS+YKAI*16-1
- 2110 LINE(XSS-1,YSS-1)-(XEE+1,YEE+1),XOR,7,B
- 2130 MOUSE 5
- 2170 RETURN
- 2210 '
- 2230 '------ 画面デ-タ処理 サブル-チン -----------
- 2250 ' basic data ニ カキダス
- 2270 *SPRSV1
- 2290 ' KILL SFLL$
- 2310 OPEN "O",#1,SFLL$
- 2330 '
- 2335 COLOR 1
- 2340 LOCATE 35,23:PRINT "セ-ブ中です。しばらく、お待ち下さい。"
- 2345 COLOR 7
- 2347 PRINT #1,"40000 DATA ";XKAI;",";YKAI;CHR$(13)
- 2350 FOR YK=0 TO YKAI-1
- 2370 YS=YSS+15*YK
- 2390 FOR XK=0 TO XKAI-1
- 2410 XS=XSS+15*XK
- 2430 YE=YS+15 : XE=XS+15
- 2450 FOR YP=YS TO YE
- 2470 GET@A (XS,YP)-(XE,YP),HAI%
- 2490 AD&=VARPTR(HAI%(0))
- 2510 GYO=GYO+10
- 2530 PRINT #1 ,GYO;"DATA ";
- 2550 XC=0
- 2570 FOR XP=XS TO XE
- 2610 AN1$="&H"+RIGHT$("000"+HEX$(PEEK(AD&+XC*2,2)),4)
- 2630 XC=XC+1
- 2650 IF XC=16 THEN PRINT #1,AN1$;"" ELSE PRINT #1,AN1$;",";
- 2670 NEXT XP
- 2690 PRINT #1,CHR$(13)
- 2710 NEXT YP
- 2730 NEXT XK
- 2750 NEXT YK
- 2770 CLOSE #1
- 2790 RETURN
- 2850 '
- 2870 '------ 画面デ-タ処理 サブル-チン 2 -----------
- 2890 ' data file ニ カキダス
- 2910 *SPRSV2
- 2930 ' KILL SFLL$
- 2950 OPEN "O",#1,SFLL$
- 2975 COLOR 1
- 2980 LOCATE 35,23:PRINT "セ-ブ中です。しばらく、お待ち下さい。"
- 2985 COLOR 7
- 2987 PRINT #1,XKAI;YKAI;",";
- 2990 FOR YK=0 TO YKAI-1
- 3010 YS=YSS+15*YK
- 3030 FOR XK=0 TO XKAI-1
- 3050 XS=XSS+15*XK
- 3070 YE=YS+15 : XE=XS+15
- 3090 FOR YP=YS TO YE
- 3110 GET@A (XS,YP)-(XE,YP),HAI%
- 3130 AD&=VARPTR(HAI%(0))
- 3190 XC=0
- 3210 FOR XP=XS TO XE
- 3270 AN1$=HEX$(PEEK(AD&+XC*2,2))
- 3290 XC=XC+1
- 3310 PRINT #1,AN1$;",";
- 3330 NEXT XP
- 3370 NEXT YP
- 3390 NEXT XK
- 3410 NEXT YK
- 3430 CLOSE #1
- 3450 RETURN
- 3470 '
- 3490 '---------------------------------------------------------------
- 3510 '===<< スプライト 読み込み、定義 1 >>========
- 3530 *SPRGT1
- 3550 'sub data file ヨリ スプライト ヨミコミ
- 3570 '
- 3590 '
- 3630 XPP=0 : YPP=0 : SPP=4 : TPP=0
- 3650 '
- 3670 '
- 3690 OPEN "I",#2,GFLL$
- 3695 COLOR 3
- 3700 LOCATE 35,23:PRINT "読み込み中です。しばらく、お待ち下さい。"
- 3705 COLOR 7
- 3707 INPUT #2,XKAI
- 3708 INPUT #2,YKAI
- 3710 FOR JY=0 TO YKAI-1
- 3730 YP=YP+15*JY
- 3750 XP=XPP
- 3770 FOR JX=0 TO XKAI-1
- 3790 XP=XP+15*JX
- 3810 FOR I=0 TO 255
- 3830 INPUT#2,ABB$
- 3890 AE$="&H"+ABB$
- 3910 HAI%(I)=VAL(AE$)
- 3950 NEXT I
- 3990 DEF SPRITE 0,SPP,HAI%,1
- 4010 SPP=SPP+4
- 4030 NEXT JX
- 4050 NEXT JY
- 4070 '
- 4090 CLOSE #2
- 4230 RETURN
- 4250 '
- 4270 '-------------------------------------------------------------
- 4290 '-----<< 画面よりスプライトの定義 2 >>--------
- 4310 '
- 4330 *SPRGT2
- 4370 XYP=0
- 4390 FOR YP=0 TO YKAI-1
- 4410 FOR XP=0 TO XKAI-1
- 4430 X3=XSS+XP*16 : Y3=YSS+YP*16
- 4450 GET@A(X3,Y3)-(X3+15,Y3+15),HAI%
- 4470 XYP=XYP+1
- 4490 DEF SPRITE 0,XYP*4,HAI%,1
- 4510 NEXT XP
- 4530 NEXT YP
- 4550 RETURN
- 4570 '
- 4590 '---------------------------------------------------------------
- 4610 '===<< スプライト 読み込み、定義 3 >>=========
- 4630 *SPRGT3
- 4650 'sub T-MENU ノ data file ヨリ スプライト ヨミコミ
- 4670 '
- 4690 '
- 4730 XPP=0 : YPP=0 : SPP=0 : TPP=0
- 4750 XKAI=8 : YKAI=8
- 4755 COLOR 3
- 4760 LOCATE 35,23:PRINT "読み込み中です。しばらく、お待ち下さい。"
- 4765 COLOR 7
- 4770 '
- 4790 OPEN "I",#2,GFLL$
- 4810 AXY$=INPUT$(16,#2)
- 4890 FOR JX=0 TO 63
- 4910 AXY$=INPUT$(2,#2)
- 4930 FOR I=0 TO 255
- 4950 AE1$=RIGHT$("0"+HEX$(ASC(INPUT$(1,#2))),2)
- 4970 AE2$=RIGHT$("0"+HEX$(ASC(INPUT$(1,#2))),2)
- 5030 AE$="&H"+AE2$+AE1$
- 5070 HAI%(I)=VAL(AE$)
- 5110 NEXT I
- 5130 SPP=SPP+4
- 5150 DEF SPRITE 0,SPP,HAI%,1
- 5190 NEXT JX
- 5250 CLOSE #2
- 5270 RETURN
- 5290 '
-