PRG:FUKURO
セツメイEXPLANATION
あなたを袋叩きにしようと金髪の連中が迫ってくるので、こちらも応戦しつつ、できるだけ長く耐えてください。Golden haired enemies are coming to gang up on you. Fight back and hold out as long as possible.
画面上部に体力ゲージが表示されており、攻撃を受けると減ります。じっとしていると少しずつ増え、移動中もちょっぴり増えます。The health bar is shown at the top of screen. It decreases by enemy's attack. It increases while you are staying put.
十字キーで移動し、Aボタンでパンチ。体力ゲージがなくなるとゲームオーバーになり、Bボタンで再開できます。Move by cross-key. Punch by A button. If the health bar becomes empty, the game is over and you can retry by B button.
※ABAさんが作った fukuro - 袋叩きの行動モデル をアレンジしたゲームです。※This game is based on "fukuro" by ABA-games.
QRコードQR CODE
プログラムコードPROGRAM CODE
表示 Show
A | スコア |
B | ボタンの状態 |
D,Z | 角度や距離に関する計算に使用 |
D(),R() | 敵の極座標(主人公の座標を原点として) |
E,K | 引き離し処理に使用 |
H | 主人公の体力 |
I,J | 汎用ループカウンタ |
N | 敵の人数 |
P | 円周率 |
P() | 主人公 or 敵の硬直時間 (0は主人公、1~10は敵) |
R | 主人公からの距離の平均値 |
S | 鳴らす効果音の番号 |
T | ゲーム開始からのフレーム数 |
V,W | キャラの移動量計算時に使用 |
V(),W() | 敵の移動量 |
X,Y | キャラの座標計算時に使用 |
X(),Y() | 主人公 or 敵の座標 (0は主人公、1~10は敵) |
001. ′PRG:FUKUROЛ
002. Л
003. ′---INITЛ
004. Л
005. @INЛ
006. ACLSЛ
007. GPRIO 0Л
008. CLEARЛ
009. DIM X(11),Y(11),V(11),W(11),D(11),R(11),P(11)Л
010. P=PI()Л
011. Л
012. BGFILL 0,0,0,31,23,33485Л
013. FOR I=0 TO 10Л
014. SPSET I,68,7+(I==0)*4,0,0,1Л
015. SPHOME I,8,8Л
016. SPSCALE I,200Л
017. X(I)=RND(256):Y(I)=-16Л
018. GOSUB @SOЛ
019. GOSUB @SWЛ
020. NEXTЛ
021. X(0)=128Л
022. Y(0)=160Л
023. D(0)=P/2Л
024. H=230Л
025. BGMPLAY 2Л
026. Л
027. ′---PLAYERЛ
028. Л
029. @MNЛ
030. T=T+1Л
031. N=SQR(T/50+9)Л
032. IF N>10 THEN N=10Л
033. S=0Л
034. I=0Л
035. B=BUTTON()Л
036. IF P(0)==1 THEN GOSUB @SW:SPCLR 11Л
037. IF P(0)>0 THEN P(0)=P(0)-1:GOTO @ENЛ
038. V=((8 AND B)/8-(4 AND B)/4)*5Л
039. W=((2 AND B)/2-(B%2))*5Л
040. IF V AND W THEN V=V*.7:W=W*.7Л
041. X=X(0)+VЛ
042. Y=Y(0)+WЛ
043. IF X<16 THEN X=16Л
044. IF X>239 THEN X=239Л
045. IF Y<24 THEN Y=24Л
046. IF Y>175 THEN Y=175Л
047. X(0)=XЛ
048. Y(0)=YЛ
049. H=H+.25Л
050. IF V OR W THEN D(0)=ATAN(W,V):H=H-.125Л
051. GOSUB @SOЛ
052. IF !(16 AND B) THEN @ENЛ
053. GOSUB @SPЛ
054. SPSET 11,52,3,0,0,1Л
055. SPOFS 11,X+COS(D(0))*24-8,Y+SIN(D(0))*24-8Л
056. SPANIM 11,4,2Л
057. S=27Л
058. Л
059. ′---ENEMYЛ
060. Л
061. @ENЛ
062. R=0Л
063. FOR I=1 TO NЛ
064. X(I)=X(I)+V(I)Л
065. Y(I)=Y(I)+W(I)Л
066. V=X(0)-X(I)Л
067. W=Y(0)-Y(I)Л
068. D(I)=ATAN(W,V)Л
069. R(I)=SQR(V*V+W*W)Л
070. GOSUB @SOЛ
071. R=R+R(I)Л
072. NEXTЛ
073. R=R/NЛ
074. Л
075. FOR I=1 TO NЛ
076. V=0:W=0Л
077. D=ABS(D(I)-D(0)):IF D>P THEN D=P*2-DЛ
078. IF D>P*.75 AND P(0)==6 AND R(I)<48 THEN GOSUB @SB:A=A+1:S=30:GOTO @EMЛ
079. IF P(I)==1 THEN GOSUB @SWЛ
080. IF P(I)>0 THEN P(I)=P(I)-1:GOTO @EMЛ
081. IF R(I)<24 THEN GOSUB @SP:K=I:I=0:GOSUB @SB:I=K:H=H-20:S=11:GOTO @EMЛ
082. ′(COHESION)Л
083. IF D<P/6 OR R(I)<28 THEN D=D(I):Z=5:GOSUB @VEЛ
084. ′(NOISE)Л
085. D=RND(32)*P/16:Z=4:GOSUB @VEЛ
086. ′(ALIGNMENT)Л
087. D=D(I):Z=SGN(R(I)-R)+.1:GOSUB @VEЛ
088. ′(SEPARATION)Л
089. K=0:E=PЛ
090. FOR J=1 TO NЛ
091. D=D(I)-D(J)Л
092. IF D>P THEN D=D-P*2Л
093. IF D<-P THEN D=D+P*2Л
094. IF I!=J AND ABS(E)>ABS(D) AND D!=0 THEN K=J:E=DЛ
095. NEXTЛ
096. IF K THEN D=D(I)-P/2*SGN(E):Z=2:GOSUB @VEЛ
097. @EMЛ
098. V(I)=(V(I)*7+V)/8Л
099. W(I)=(W(I)*7+W)/8Л
100. NEXTЛ
101. Л
102. IF H>230 THEN H=230Л
103. GFILL 25,1,H+25,6,37Л
104. GFILL H+25,1,255,6,0Л
105. GBOX 24,0,255,7,15Л
106. LOCATE 0,0:PRINT AЛ
107. IF S>0 THEN BEEP SЛ
108. VSYNC 2Л
109. IF H>0 THEN @MNЛ
110. Л
111. ′---GAMEOVERЛ
112. Л
113. BGMSTOP:BEEP 14Л
114. FOR I=1 TO NЛ
115. SPANIM I,1,1,1Л
116. NEXTЛ
117. SPCLR 11Л
118. WAIT 60Л
119. SPCHR 0,92Л
120. SPANGLE 0,0Л
121. BGMPLAY 6Л
122. LOCATE 12,12:PRINT ”GAMEOVER”Л
123. @OVЛ
124. IF 32 AND BUTTON() THEN @IN ELSE @OVЛ
125. Л
126. ′---SUB ROUTINESЛ
127. Л
128. @VEЛ
129. V=V+COS(D)*ZЛ
130. W=W+SIN(D)*ZЛ
131. RETURNЛ
132. Л
133. @SWЛ
134. SPCHR I,68Л
135. SPANIM I,4,8Л
136. RETURNЛ
137. Л
138. @SPЛ
139. SPCHR I,82Л
140. SPANIM I,2,4,1Л
141. V(I)=0Л
142. W(I)=0Л
143. P(I)=!!I*24+6Л
144. RETURNЛ
145. Л
146. @SBЛ
147. SPCHR I,89Л
148. SPANIM I,1,1,1Л
149. P(I)=!!I*26+4Л
150. IF I THEN D=D(I):Z=-64:GOSUB @VEЛ
151. RETURNЛ
152. Л
153. @SOЛ
154. SPOFS I,X(I),Y(I)Л
155. IF !P(I) THEN SPANGLE I,DEG(D(I)-P/2)Л
156. RETURNЛ
※コードのHTML生成にPTC2HTMLを使用しています。
モドル BACK