home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / fbasic / sprplay / sprplay.bas < prev   
BASIC Source File  |  1990-06-14  |  8KB  |  247 lines

  1. 10 '***************************************************************
  2. 11 '**  スプライトデ-タの保存、読み込み、DEF SPRITE 0 までの **
  3. 12 '** 定義をするプログラムです。                              **
  4. 29 '***************************************************************
  5. 30 'main
  6. 50 '
  7. 70 CLOSE #1 : CLOSE #2
  8. 90 CLEAR :  COLOR 7 
  9. 95 DIM HAI%(1000),A(800)
  10. 110 CLS
  11. 170 '**************************************************************
  12. 190 LOCATE 3,3 : PRINT "******************************************"
  13. 210 LOCATE 3,4 : PRINT "**                                      **"
  14. 230 LOCATE 3,5 : PRINT "** 1. スプライトの読み込み&定義    **"
  15. 270 LOCATE 3,6 : PRINT "**                                      **"
  16. 290 LOCATE 3,7 : PRINT "** 2. スプライトのデ-タ保存      **"
  17. 310 LOCATE 3,8 : PRINT "**                                      **"
  18. 330 LOCATE 3,9 : PRINT "** 3. サブプログラム          **"
  19. 350 LOCATE 3,10: PRINT "**                                      **"
  20. 370 LOCATE 3,11: PRINT "** E. 終わり             **"
  21. 372 LOCATE 3,12: PRINT "**                                      **"
  22. 374 LOCATE 3,13: PRINT "******************************************"
  23. 375 LOCATE 3,15
  24. 390 INPUT "番号を選んで下さい ";BAN$
  25. 393   IF BAN$="1" THEN GOTO *SYL1
  26. 395   IF BAN$="2" THEN GOTO *SYL2
  27. 397   IF BAN$="3" THEN GOTO *SYL2
  28. 398   IF BAN$="E" OR BAN$="e"  THEN END
  29. 400   GOTO 110
  30. 401 '  スプライト ノ ヨミコミ テイギ  ノ  コントロ-ル
  31. 403 *SYL1
  32. 450  INPUT "ファイル名 ";FL$   '----ヨミコミ ファイル メイ
  33. 460  INPUT "ドライブ名 ";DR$
  34. 470  GFLL$=DR$+":"+FL$
  35. 475  PRINT "TOWNS基本ソフトのエディタでセ-ブしたファイル(T)" 
  36. 480  PRINT "(2)のデ-タ保存でセ-ブしたファイル      (S)" 
  37. 490  INPUT "ファイル形式(T),(S)";BAN2$
  38. 493  IF BAN2$="T" OR BAN2$="t"  THEN  GOSUB *SPRGT3
  39. 494  IF BAN2$="S" OR BAN2$="s"  THEN  GOSUB *SPRGT1
  40. 495  GOTO  *SYL3
  41. 497 '----------   ガゾウ ノ ヨミコミ 
  42. 500 *SYL2
  43. 502  '
  44. 503  INPUT "画像ファイル名 ";FL$
  45. 505  INPUT "ドライブ名 ";DR$
  46. 506  LFLL$=DR$+":"+FL$
  47. 507  IF BAN$="3" THEN GOTO 610
  48. 509 '
  49. 510  INPUT "セ-ブファイル名 ";FL$
  50. 515  INPUT "ドライブ名 ";DR$
  51. 520  SFLL$=DR$+":"+FL$
  52. 530  INPUT "BASICデ-タ文(D) or 外部ファイル(F) ";DF$
  53. 550  IF DF$="F" OR DF$="f"  THEN GOTO 610
  54. 555  IF DF$="D" OR DF$="d"  THEN GOTO 610
  55. 560  GOTO 530
  56. 570 'INPUT "よろしいですか ";ANS$
  57. 590 'IF ANS$="Y" OR ANS$="y" OR ANS$="" THEN GOTO 610 ELSE GOTO 110
  58. 610  COLOR 1
  59. 630  SCREEN@ 1
  60. 710  LOAD@ LFLL$
  61. 750  XSS=0 : YSS=0  : GYO=40000
  62. 870  GOSUB  *MSPRO
  63. 880  IF BAN$="3" THEN  GOSUB *SPRGT2 : GOTO *SYL3
  64. 1030 '
  65. 1050  IF DF$="D" OR DF$="d"  THEN  GOSUB *SPRSV1
  66. 1070  IF DF$="F" OR DF$="f"  THEN  GOSUB *SPRSV2
  67. 1090  GOTO 110
  68. 1130 '--------- デモ 、 ガイブ プログラム ノ キドウ  
  69. 1150 *SYL3
  70. 1155   CLS
  71. 1170   INPUT "サンプル(S),サブプログラム名";FL$
  72. 1190   IF FL$="S"  OR  FL$="s" THEN FL$="SPRDM1.BAS"
  73. 1210   CHAIN FL$,10000,ALL
  74. 1390   GOTO 110
  75. 1410 '
  76. 1430  END
  77. 1450 '###############################################################
  78. 1470 '
  79. 1490 '=====  マウスによる範囲の指定  サブル-チン  ================
  80. 1510 *MSPRO
  81. 1530 '--- START POINT
  82. 1550   MOUSE 0  : MOUSE 1,0,0,1
  83. 1570   MOUSE 4,0,0,319,239
  84. 1590   XSS=MOUSE(0) : YSS=MOUSE(1)
  85. 1610   LOCATE 0,22 : PRINT "START=(";XSS;",";YSS;")";
  86. 1630 '
  87. 1650   IF MOUSE(2,0)<>-1 THEN GOTO 1570
  88. 1670   XSS=MOUSE(4,0) : YSS=MOUSE(5,0)
  89. 1690   MOUSE 4,XSS,YSS,319,239
  90. 1710 '
  91. 1730   IF MOUSE(2,0)=-1 THEN GOTO 1730
  92. 1750   LOCATE 0,22 : PRINT "START=(";XSS;",";YSS;")";
  93. 1770 '-----  END POINT
  94. 1830 '
  95. 1850   XEE=MOUSE(0) : YEE=MOUSE(1)
  96. 1870   LOCATE 0,23 : PRINT "END  =(";XEE;",";YEE;")";
  97. 1890   XKAI=INT((XEE-XSS)/16)+1
  98. 1910   YKAI=INT((YEE-YSS)/16)+1 : XY=XKAI*YKAI
  99. 1930   LOCATE 0,24 : PRINT "X=";XKAI;" : Y=";YKAI;" : スプライト=";XY;
  100. 1970   LINE(XSS-1,YSS-1)-(XEE+1,YEE+1),XOR,7,B
  101. 1990   LINE(XSS-1,YSS-1)-(XEE+1,YEE+1),XOR,7,B
  102. 2030   IF MOUSE(2,1)=-1 THEN GOTO 1590
  103. 2050   IF MOUSE(2,0)=0 THEN GOTO 1850
  104. 2090   XEE=XSS+XKAI*16-1 : YEE=YSS+YKAI*16-1
  105. 2110   LINE(XSS-1,YSS-1)-(XEE+1,YEE+1),XOR,7,B
  106. 2130   MOUSE 5 
  107. 2170  RETURN
  108. 2210 '
  109. 2230 '------ 画面デ-タ処理 サブル-チン  -----------
  110. 2250 '         basic  data ニ  カキダス
  111. 2270 *SPRSV1
  112. 2290 '  KILL SFLL$
  113. 2310   OPEN "O",#1,SFLL$
  114. 2330 '
  115. 2335   COLOR 1
  116. 2340   LOCATE 35,23:PRINT "セ-ブ中です。しばらく、お待ち下さい。"
  117. 2345   COLOR 7
  118. 2347   PRINT #1,"40000 DATA ";XKAI;",";YKAI;CHR$(13)
  119. 2350   FOR YK=0 TO YKAI-1
  120. 2370     YS=YSS+15*YK
  121. 2390     FOR XK=0 TO XKAI-1
  122. 2410       XS=XSS+15*XK
  123. 2430       YE=YS+15  :  XE=XS+15
  124. 2450       FOR YP=YS TO YE
  125. 2470         GET@A (XS,YP)-(XE,YP),HAI%
  126. 2490         AD&=VARPTR(HAI%(0))
  127. 2510         GYO=GYO+10
  128. 2530         PRINT #1 ,GYO;"DATA ";
  129. 2550         XC=0
  130. 2570         FOR XP=XS TO XE
  131. 2610           AN1$="&H"+RIGHT$("000"+HEX$(PEEK(AD&+XC*2,2)),4) 
  132. 2630           XC=XC+1
  133. 2650           IF XC=16 THEN PRINT #1,AN1$;"" ELSE PRINT #1,AN1$;",";
  134. 2670         NEXT XP
  135. 2690         PRINT #1,CHR$(13)
  136. 2710       NEXT YP
  137. 2730     NEXT XK
  138. 2750   NEXT YK
  139. 2770   CLOSE #1
  140. 2790  RETURN
  141. 2850 '
  142. 2870 '------ 画面デ-タ処理 サブル-チン 2 -----------
  143. 2890 '                  data file ニ  カキダス
  144. 2910 *SPRSV2
  145. 2930 '  KILL SFLL$
  146. 2950   OPEN "O",#1,SFLL$
  147. 2975   COLOR 1
  148. 2980   LOCATE 35,23:PRINT "セ-ブ中です。しばらく、お待ち下さい。"
  149. 2985   COLOR 7
  150. 2987   PRINT #1,XKAI;YKAI;",";
  151. 2990   FOR YK=0 TO YKAI-1
  152. 3010     YS=YSS+15*YK
  153. 3030     FOR XK=0 TO XKAI-1
  154. 3050       XS=XSS+15*XK
  155. 3070       YE=YS+15  :  XE=XS+15
  156. 3090       FOR YP=YS TO YE
  157. 3110         GET@A (XS,YP)-(XE,YP),HAI%
  158. 3130         AD&=VARPTR(HAI%(0))
  159. 3190         XC=0
  160. 3210         FOR XP=XS TO XE
  161. 3270           AN1$=HEX$(PEEK(AD&+XC*2,2)) 
  162. 3290           XC=XC+1
  163. 3310           PRINT #1,AN1$;","; 
  164. 3330         NEXT XP
  165. 3370       NEXT YP
  166. 3390     NEXT XK
  167. 3410   NEXT YK
  168. 3430   CLOSE #1
  169. 3450  RETURN
  170. 3470 '
  171. 3490 '---------------------------------------------------------------
  172. 3510 '===<< スプライト 読み込み、定義 1 >>========
  173. 3530 *SPRGT1
  174. 3550 'sub  data file ヨリ スプライト ヨミコミ
  175. 3570 '
  176. 3590 '
  177. 3630   XPP=0 : YPP=0 : SPP=4 : TPP=0
  178. 3650 '
  179. 3670 '
  180. 3690   OPEN  "I",#2,GFLL$
  181. 3695   COLOR 3
  182. 3700   LOCATE 35,23:PRINT "読み込み中です。しばらく、お待ち下さい。"
  183. 3705   COLOR 7
  184. 3707   INPUT #2,XKAI
  185. 3708   INPUT #2,YKAI
  186. 3710   FOR JY=0 TO YKAI-1
  187. 3730     YP=YP+15*JY
  188. 3750     XP=XPP
  189. 3770     FOR JX=0 TO XKAI-1
  190. 3790       XP=XP+15*JX
  191. 3810       FOR I=0 TO 255
  192. 3830         INPUT#2,ABB$
  193. 3890         AE$="&H"+ABB$
  194. 3910         HAI%(I)=VAL(AE$) 
  195. 3950       NEXT I
  196. 3990       DEF SPRITE 0,SPP,HAI%,1
  197. 4010       SPP=SPP+4
  198. 4030     NEXT JX
  199. 4050   NEXT JY
  200. 4070 '  
  201. 4090  CLOSE #2
  202. 4230  RETURN
  203. 4250 '
  204. 4270 '-------------------------------------------------------------
  205. 4290 '-----<< 画面よりスプライトの定義 2 >>--------
  206. 4310 '
  207. 4330 *SPRGT2
  208. 4370  XYP=0 
  209. 4390  FOR YP=0 TO YKAI-1
  210. 4410    FOR XP=0 TO XKAI-1
  211. 4430      X3=XSS+XP*16 : Y3=YSS+YP*16
  212. 4450      GET@A(X3,Y3)-(X3+15,Y3+15),HAI%
  213. 4470      XYP=XYP+1
  214. 4490      DEF SPRITE 0,XYP*4,HAI%,1
  215. 4510    NEXT XP
  216. 4530  NEXT YP
  217. 4550  RETURN
  218. 4570 '
  219. 4590 '---------------------------------------------------------------
  220. 4610 '===<< スプライト 読み込み、定義 3 >>=========
  221. 4630 *SPRGT3
  222. 4650 'sub  T-MENU ノ data file ヨリ スプライト ヨミコミ
  223. 4670 '
  224. 4690 '
  225. 4730   XPP=0 : YPP=0 : SPP=0 : TPP=0
  226. 4750   XKAI=8  :  YKAI=8
  227. 4755   COLOR 3
  228. 4760   LOCATE 35,23:PRINT "読み込み中です。しばらく、お待ち下さい。"
  229. 4765   COLOR 7
  230. 4770 '
  231. 4790   OPEN  "I",#2,GFLL$
  232. 4810   AXY$=INPUT$(16,#2)
  233. 4890   FOR JX=0 TO 63
  234. 4910     AXY$=INPUT$(2,#2)
  235. 4930     FOR I=0 TO 255
  236. 4950       AE1$=RIGHT$("0"+HEX$(ASC(INPUT$(1,#2))),2)
  237. 4970       AE2$=RIGHT$("0"+HEX$(ASC(INPUT$(1,#2))),2)
  238. 5030       AE$="&H"+AE2$+AE1$
  239. 5070       HAI%(I)=VAL(AE$) 
  240. 5110     NEXT I
  241. 5130     SPP=SPP+4
  242. 5150     DEF SPRITE 0,SPP,HAI%,1
  243. 5190   NEXT JX
  244. 5250  CLOSE #2
  245. 5270  RETURN
  246. 5290 '
  247.