プチコン

  1. ’┌──────────┐
  2. ’│タ゛ッシュツケ゛-ム│
  3. ’└──────────┘
  4. VISIBLE 1,1,1,1,1,1
  5. CLS
  6. GPAGE 0:GCOLOR 0:GCLS
  7. SPPAGE 0:SPCLR
  8. BGPAGE 0
  9. BGOFS 0,0,0
  10. BGOFS 1,0,0
  11. ’---
  12. CLEAR
  13. WMAX=3:EMAX=16:HI=1000
  14. DIM W(WMAX,4),OX(4),OY(4)
  15. DIM E(EMAX,8)
  16. _X=0:_Y=1:_V=2:_S=3:’_____
  17. ’
  18. DATA 0,0,1,0,0,1,1,1
  19. FOR I=0 TO 3
  20.  READ OX(I),OY(I)
  21. NEXT
  22. ’---カヘ゛
  23. DATA &H010D,&H010E,&H012D,&H012E
  24. DATA &H0001,&H1001,&H2001,&H3001
  25. DATA &H0002,&H1002,&H0002,&H1002
  26. FOR I=0 TO WMAX-1
  27.  FOR J=0 TO 3
  28.   READ W(I,J)
  29.  NEXT
  30. NEXT
  31. ’---ショキカ
  32. PR=2:REQ=0:FLW=-1
  33. ’┌───────┐
  34. ’│メインル-フ゜│
  35. ’└───────┘
  36. @MLOOP
  37.  OLDB=B:B=BUTTON()
  38.  IF FLW==REQ GOTO @JPFLOW
  39.  FLW=REQ
  40.  ON FLW GOSUB @TINIT,@GINIT,@OVINIT
  41. @JPFLOW
  42.  ON FLW GOSUB @TITLE,@GAME,@GOVER
  43.  VSYNC 1
  44. GOTO @MLOOP
  45. END
  46. ’┌────┐
  47. ’│ケ゛-ム│
  48. ’└────┘
  49. @GAME
  50. GOSUB @PLAYER
  51. GOSUB @PUTSTAT
  52. GOSUB @WALL
  53. GOSUB @ENEMY
  54. RETURN
  55. ’---
  56. @PUTSTAT
  57. LOCATE 0,0:PRINT”1P:”;OY;”m”
  58. COLOR 13
  59. LOCATE 10,0:PRINT”HI:”;HI;”m”
  60. COLOR 0
  61. RETURN
  62. ’---
  63. @ENEMY
  64. ’---シ゛カンテ゛ハッセイ
  65. ET=ET-1
  66. IF ET!=0 GOTO @ELOOP
  67. GOSUB @EBORN
  68. ’---
  69. @ELOOP
  70. CX=PX+7
  71. FOR I=0 TO ECNT-1
  72.  IF E(I,_S)==0 GOTO @ENEXT
  73.  ’---テキイト゛ウ
  74.  EX=E(I,_X):V=E(I,_V)
  75.  EY=E(I,_Y)+OY
  76.  IF E(I,_S)==1 GOTO @EMOVE
  77.  ’---オリテルサイチュウ
  78.  E(I,_S)=E(I,_S)-1
  79.  EY=EY+1
  80.  GOTO @EPUT
  81.  ’---サユウイト゛ウ
  82. @EMOVE
  83.  EX=EX+V
  84.  IF EX<16 THEN EX=16:V=-V
  85.  IF EX>223 THEN EX=224:V=-V
  86.  E(I,_V)=V
  87.  ’---アシモトカクニン
  88.  X=((EX+8)/8) AND 63
  89.  Y=((EY+16-OY)/8) AND 63
  90.  BGREAD(1,X,Y),N,C,H,V
  91.  IF N==1 GOTO @EPUT
  92.  ’---オリル
  93.  E(I,_S)=32+1
  94.  ’---ヒョウシ゛
  95. @EPUT
  96.  SPOFS I+10,EX,EY
  97.  E(I,_X)=EX
  98.  E(I,_Y)=EY-OY
  99.  ’---シュウリョウカクニン
  100.  IF EY>192 THEN E(I,_S)=0
  101.  ’---アタリハンテイ
  102.  IF PY!=EY GOTO @ENEXT
  103.  IF CX<EX  GOTO @ENEXT
  104.  IF CX>EX+15 GOTO @ENEXT
  105.  ’---タ゛メ-シ゛
  106.  DM=DM+1
  107.  ’---
  108. @ENEXT
  109. NEXT
  110. RETURN
  111. ’---
  112. @WALL
  113. ST=ST-1
  114. IF ST>0 GOTO @MOVWALL
  115. ’---テキヲフヤス
  116. ST=1000
  117. ECNT=ECNT+1
  118. IF ECNT>EMAX THEN ECNT=EMAX
  119. ’---
  120. @MOVWALL
  121. HY=HY+0.5
  122. BGOFS 0,0,HY AND 511
  123. BGOFS 1,0,(511-OY) AND 511
  124. ’--- ヤラレタ?
  125. IF DM>0 GOTO @PDEAD
  126. IF HY<160 THEN RETURN
  127. @PDEAD
  128. COLSET ”BG”,0,”FF0000”
  129. REQ=2
  130. RETURN
  131. ’---
  132. @PLAYER
  133. ’---シ゛ョウケ゛イト゛ウチュウ?
  134. IF MY==0 GOTO @MOVP
  135. V=1
  136. MY=MY-V
  137. OY=OY+V:IF OY>HI THEN HI=OY
  138. HY=HY-V
  139. IF HY<0 THEN HY=0
  140. IF MY>0 THEN RETURN
  141. RETURN
  142. ’---イト゛ウ
  143. @MOVP
  144. IF B AND 1 GOTO @MOVUP
  145. @MOVPLR
  146. VX=0
  147. IF B AND 4 THEN PD=2:VX=VX-1
  148. IF B AND 8 THEN PD=0:VX=VX+1
  149. PX=PX+VX*2
  150. IF PX<16 THEN PX=16
  151. IF PX>223 THEN PX=224
  152. ’---
  153. @PEND
  154. SPOFS 0,PX,PY
  155. SPCHR 0,PD*2+128
  156. IF SPCHK(1) THEN RETURN
  157. SPOFS 1,-32,-32
  158. SPANGLE 1,0
  159. RETURN
  160. ’---ノホ゛レタラノホ゛ル
  161. @MOVUP
  162. X=((PX+8)/8) AND 63
  163. Y=((PY-8-OY)/8) AND 63
  164. IF BX==X GOTO @MOVPLR
  165. BX=X
  166. BGREAD(1,X,Y),N,C,H,V
  167. IF N!=1 GOTO @UPOK
  168. ’---フ゛ツカッタ
  169. SPOFS 1,PX+8,PY-8
  170. SPANGLE 1,270,15
  171. BEEP 11
  172. GOSUB @EBORN
  173. GOTO @MOVPLR
  174. ’---
  175. @UPOK
  176. MY=32:PD=3:BX=-1:VX=0
  177. GOSUB @PUTLINE
  178. GOTO @PEND
  179. ’---アタラシイマッフ゜ノセイセイ
  180. @PUTLINE
  181. SX=SX+(RND(3)*2)
  182. Y=(BY-2) AND 63
  183. FOR X=2 TO 29 STEP 2
  184.  N=1:SX=FLOOR(SX%28)
  185.  IF X!=SX+2 GOTO @SKPWALL
  186.  N=2:SX=SX+(RND(8)*2)
  187. @SKPWALL
  188.  C=0:GOSUB @PUTWALL
  189. NEXT
  190. BY=BY-4:BY=BY AND 63
  191. ’---テキノハッセイ
  192. @EBORN
  193. ET=RND(30)+30
  194. I=0
  195. @EBORNLP
  196. IF E(I,_S)==0 GOTO @ESET
  197. I=I+1
  198. IF I<EMAX GOTO @EBORNLP
  199. RETURN
  200. ’---
  201. @ESET
  202. E(I,_S)=1
  203. X=RND(256-32)+16
  204. V=SGN(PX-X)
  205. IF V==0 THEN V=1
  206. E(I,_X)=X
  207. E(I,_V)=V
  208. Y=FLOOR(OY/32)*32
  209. E(I,_Y)=-Y
  210. RETURN
  211. ’---
  212. @GINIT
  213. CLS
  214. BGPAGE 0
  215. BGCLIP 0,0,31,23
  216. BGOFS 0,0,0
  217. BGOFS 1,0,0
  218. ’--- キャラテイキ゛
  219. B$=”EEEEEEEE”
  220. C$=”EFFFFFFF”
  221. D$=”EFDDDDDD”
  222. CHRSET ”BGU0”,1,B$+C$+D$+D$+D$+D$+D$+D$
  223. C$=”07700000”
  224. D$=”07777777”
  225. CHRSET ”BGU0”,2,C$+D$+D$+C$+C$+D$+D$+C$
  226. C$=   ”000F0000”
  227. C$=C$+”000F1000”
  228. C$=C$+”00FFF100”
  229. C$=C$+”00FFF100”
  230. C$=C$+”0FFFFF10”
  231. C$=C$+”0FFFFF10”
  232. C$=C$+”FFFFFFF1”
  233. C$=C$+”FFFFFFF1”
  234. CHRSET ”BGU0”,3,C$
  235. ’--- カヘ゛カ゛ワ
  236. C=0
  237. FOR Y=0 TO 63 STEP 2
  238.  N=1:X=0:GOSUB @PUTWALL
  239.  FOR X=2 TO 28 STEP 2
  240.   N=0:GOSUB @PUTWALL
  241.  NEXT
  242.  N=1:X=30:GOSUB @PUTWALL
  243. NEXT
  244. FOR Y=0 TO 63
  245.  FOR X=0 TO 31
  246.   BGPUT 0,X,Y,&H000,0,0,0
  247.  NEXT
  248. NEXT
  249. ’--- トケ゛カ゛ワ
  250. FOR X=0 TO 31
  251.  BGPUT 0,X,32,&H3,0,0,0
  252. NEXT
  253. FOR Y=1 TO 31
  254.  FOR X=0 TO 31
  255.   BGPUT 0,X,32+Y,&H327,12,0,0
  256.  NEXT
  257. NEXT
  258. ’---フ゜レイヤ-アニメ
  259. SPSET 0,134,2,0,0,PR
  260. SPANIM 0,2,8,0
  261. SPOFS 0,PX,PY
  262. SPSET 1,48,0,0,0,0
  263. SPANIM 1,4,2,0
  264. SPOFS 1,PX,PY
  265. ’---テキアニメ
  266. FOR I=0 TO EMAX-1
  267.  E(I,_S)=0
  268.  SPSET I+10,248,2,0,0,PR
  269.  SPANIM I+10,4,4,0
  270.  SPOFS I+10,-32,-32
  271. NEXT
  272. ’---
  273. SP=5:SX=0
  274. BY=0:OY=0
  275. PX=120:PY=96:VX=0
  276. PD=3:MY=0:DM=0
  277. HY=0:ST=1000:ECNT=0
  278. ’---スタ-ト
  279. GOSUB @PUTLINE
  280. VISIBLE 1,1,1,1,1,1
  281. BGMPLAY 11
  282. LOCATE 9,23
  283. PRINT ”П↑ノホ゛ル П←→イト゛ウ”;
  284. RETURN
  285. ’---
  286. @PUTWALL
  287. FOR M=0 TO 3
  288.  GOSUB @PUT1
  289. NEXT
  290. RETURN
  291. ’
  292. @PUT1
  293. I=W(N,M):H=0:V=0
  294. IF I AND &H1000 THEN H=1
  295. IF I AND &H2000 THEN V=1
  296. I=I AND &H3FF
  297. BGPUT 1,X+OX(M),Y+OY(M),I,C,H,V
  298. RETURN
  299. ’┌────┐
  300. ’│タイトル│
  301. ’└────┘
  302. @TINIT
  303. CLS
  304. VISIBLE 1,1,0,0,1,1
  305. BGMPLAY 22
  306. SPSET 0,48,0,0,0,0
  307. SPOFS 0,230,32
  308. SPANIM 0,4,4,0
  309. LOCATE 0,5
  310. COLOR 11:PRINT”      ┝┿┿┸┝┿┿┸┝┿┿┸┝┿┿┸┝┿┿┸┝┿┿┸”
  311. COLOR 9 :PRINT”     ┝┸  ┝┸  ┝┸  ┝┸┝┸┝┸┝┸┝┸”
  312. COLOR 0 :PRINT”    ┝┿┿┸┝┿┿┸┝┸  ┝┿┿┸┝┿┿┸┝┿┿┸”
  313. COLOR 9 :PRINT”   ┝┸    ┝┸┝┸  ┝┸┝┸┝┸  ┝┸”
  314. COLOR 11:PRINT”  ┝┿┿┸┝┿┿┸┝┿┿┸┝┸┝┸┝┸  ┝┿┿┸”
  315. COLOR 13
  316. LOCATE 12,1:PRINT”HI:”;HI;”m”
  317. COLOR 0
  318. LOCATE 8,13
  319. PRINT ”PUSH ANY BUTTON”
  320. LOCATE 3,22
  321. PRINT ”(C)2011 SmileBoom Co.Ltd.”
  322. RETURN
  323. ’---
  324. @TITLE
  325. IF B==0 THEN RETURN
  326. REQ=1
  327. VISIBLE 1,1,0,0,0,0
  328. BGMSTOP
  329. RETURN
  330. ’┌─────────┐
  331. ’│ケ゛-ムオ-ハ゛-│
  332. ’└─────────┘
  333. @OVINIT
  334. VISIBLE 1,1,0,0,1,0
  335. CLS
  336. BGMPLAY 6
  337. SPCHR 0,128
  338. SPANIM 0,8,2,0
  339. LOCATE PX/8,11
  340. PRINT”ウヘッ!”
  341. LOCATE 10,20
  342. PRINT”タ゛ッシュツ シッハ゜イ”
  343. RETURN
  344. ’---
  345. @GOVER
  346. IF BGMCHK() THEN RETURN
  347. COLSET ”BG”,0,”000000”
  348. SPCLR
  349. REQ=0
  350. RETURN