Enjoy programming more!
Kidspod is a post site which supports young programmers.
First step to join us.
Register as a member
For members

2018/03/06 00:54:18

MixJuice GET URL : kidspod.club/mj/469

Flappy Ichigo

『Flappy Ichigo』は、Flappy Bird 系アクションゲームです。

【ルール】
画面右側から左側に向けて、土管がスクロールしてきます。
イチゴをぴょんぴょん跳ねさせて高さを調節し、土管を避けて下さい。

イチゴが土管の間を通過すると得点になります。
イチゴが土管や地面に衝突するとゲームオーバーです。

【操作】
SPACE : イチゴを跳ねさせる

【更新履歴】
2018/03/06 初版公開

【ソースコード解説】
《変数》
Y : イチゴの現在の Y 座標
Z : イチゴの移動後の Y 座標
V : Velocity, イチゴに掛かっている下向きの速度
C : Character, イチゴを表すキャラクタ( #FE または #FF )
D, E : イチゴの移動後の位置にあるキャラクタ
F : Flag, イチゴの衝突判定
P : Point, 得点
X : 土管間の距離
S : Shift, シフト値(左右の土管の描画切り替えに利用)
I, J : Iterator, ループ変数
M, N : 一時変数(キャラクタ定義に利用)

《PCGパターン》
#E0 : 土管の端(左)
#E1 : 土管(左)
#E2 : 土管の端(右)
#E3 : 土管(右)
#E4 : 地面
#FE : 上下反転したイチゴ

#728 ~ : 地面の文字列

《コード》
5 : タイトル
10 : 初期化
20 : 「土管の端(左)」のキャラクタ定義
30 : 「土管(左)」のキャラクタ定義
40 : 「土管の端(右)」と「土管(右)」のキャラクタ定義
50 : 「地面」のキャラクタ定義
60 : 「地面」の文字列定義
70 : 「上下反転したイチゴ」のキャラクタ定義
80 : 地面の描画
90 : ゲーム開始時の初期設定
100 : ケーム開始前の文字列表示
110 : ゲーム開始のキー入力受付
120 ~ 130 : イチゴの移動先の算出
140 : イチゴの移動と衝突判定
150 : 画面の左スクロール
160 : 土管の描画判定
170 : 土管の描画

  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

SOURCE CODE

5 'Flappy Ichigo
10 CLS:CLV:CLP
20 FORI=0TO7:POKE#700+I,PEEK(144+I)|PEEK(152+I)|PEEK(160+I):NEXT
30 FORI=0TO7:POKE#708+I,48:NEXT
40 FORI=0TO15:M=PEEK(#700+I):FORJ=0TO7:N=N<<1+M&1:M=M>>1:NEXT:POKE#710+I,N:NEXT
50 FORI=0TO7:POKE#720+I,PEEK(152+I)|PEEK(160+I)|PEEK(200+I):NEXT
60 FORI=0TO3:POKE#728+I*3,I+1,31,28,0:NEXT:POKE#728,#E4
70 FORI=0TO7:COPY#7F0+I,#7FF-I,1:NEXT
80 FORI=0TO31:LC I,17:?STR$(#728);:NEXT
90 Y=10:C=#FF:LC 10,Y:?CHR$(C);
100 LC 6,22:?"HIT ANY KEY TO START";
110 IF INKEY()=0 GOTO110 ELSE COPY #BC0,#BE0,32
120 WAIT 10:IF INKEY()=32 C=#FF:V=-1 ELSE C=#FE:V=V+1:IF V>2 V=2
130 Z=Y+V:IF Z<0 Z=0
140 D=SCR(10,Z):E=SCR(11,Z):F=!(D=0||D=#FE||D=#FF&&E=0):LC 10,Y:?CHR$(0);:LC10,Z:?CHR$(C);:Y=Z:IF F LC 0,22:END
150 X=X+1:P=P+(SCR(10,16)=#E3):LC 10,Y:?CHR$(0,C);:LC 12,22:?" ",P:SCROLL 3:LC 31,17:?STR$(#728);
160 IF X<7 GOTO120 ELSE IF X=7 R=RND(8)+1 ELSE X=0
170 S=(X=0)*2:FORI=0TO R:LC 31,I:?CHR$(#E1+S):NEXT:LC 31,I+1:?CHR$(#E0+S,31,31,31,31,31,31,28,#E0+S);:FOR I=R+8 TO 16:LC 31,I:?CHR$(#E1+S);:NEXT:GOTO120

COMMENT

Kidspod運営チーム
Kidspod運営チーム2018/03/16 11:57:29

これもまた、ハマったらひと晩中遊んでしまうゲーム。Ichigoの挙動が単純ながら扱いづらく、意地になって遊び続けてしまいます。今回も、グラフィックの表現がすごい!