プチコン

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