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/15 21:33:22

MixJuice GET URL : kidspod.club/mj/473

Bullet Time

『Bullet Time』は、映画のワンシーンのように飛んでくる弾丸を避けるスクリーンセーバーです。

【操作】
キー入力 : スクリーンセーバーを終了する

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

【ソースコード解説】
《変数》
S : String, Style, 主人公の姿勢( 0 ~ 2 )
T : 主人公が取るべき姿勢( 0 ~ 2 )
N, Z : 一時変数(弾道の軌跡の表示に利用)
I, J : Iterator, ループ変数

《配列》
[0] : 高い弾道の弾丸の X 座標
[1] : 低い弾道の弾丸の X 座標

《PCGパターン》
#E0 ~ #E5 : 主人公の姿勢 0 のキャラクタ(横 2 文字 x 縦 3 文字の合計 6 文字)
#E6 ~ #EB : 主人公の姿勢 1 のキャラクタ(横 3 文字 x 縦 2 文字の合計 6 文字)
#EC ~ #EE : 主人公の姿勢 2 のキャラクタ(横 3 文字 x 縦 1 文字の合計 3 文字)

#7B0 〜 : 主人公の姿勢 0 の文字列
#7C2 〜 : 主人公の姿勢 1 の文字列
#7D4 〜 : 主人公の姿勢 2 の文字列

《コード》
5 : タイトル
10 : 初期化
20 : 使用する PCG パターンのアドレス値のゼロ埋め
30 : 主人公の姿勢 0 のキャラクタパターン定義
40 : 主人公の姿勢 1 のキャラクタパターン定義
50 : 主人公の姿勢 2 のキャラクタパターン定義
60 ~ 70 : 主人公の姿勢の文字列定義
80 : スクリーンセーバー開始時の初期設定
90 : キー入力受付
100 : T の算出
110 : 主人公の描画
130 : 通り過ぎた弾丸の配列の初期化
140 : 弾丸の配置
150 : 弾丸を進める
160 : 弾丸の描画
170 ~ 210 : 弾道の軌跡の描画

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

SOURCE CODE

5 'Bullet Time
10 CLS:CLV
20 FORI=0TO104:POKE#700+I,0:NEXT
30 POKE#701,1,2,2,2,3,7,7,128,0,96,240,240,224,128,192,15,15,30,60,60,120,248,240,248,135,1,0,0,0,0,0,248,248,220,92,108,110,38,238
40 POKE#737,1,0,1,6,13,27,63,125,254,0,192,0,128,192,192,128,0,15,63,127,124,108,110,38,238,255,248,128,0,0,0,0,0,192,112,16
50 POKE#760,3,7,15,29,58,51,103,238,0,128,193,227,255,127,63,30,30,96,152,188,252,216,192,63
60 FORI=0TO2:FORJ=0TO2:POKE#7B0+I*18+J*7,32,32,32,31,28,28,28:NEXT:POKE#7C1+I*18,0:NEXT
70 POKE#7B0,#E0,#E1:POKE#7B7,#E2,#E3:POKE#7BE,#E4,#E5:POKE#7C9,#E6,#E7,#E8:POKE#7D0,#E9,#EA,#EB:POKE#7E2,#EC,#ED,#EE
80 CLK
90 IF INKEY() CLS:CLP:END
100 IF [1]>12&&[1]<22 T=2 ELSE IF [0]>13&&[0]<21 T=1 ELSE T=0
110 S=S+(S<T)-(S>T):LC 15,10:?STR$(#7B0+S*18);
120 FOR I=0 TO1
130 IF [I]>37 [I]=0
140 IF ![I]&&RND(9)>7 [I]=1
150 IF [I] [I]=[I]+1 ELSE GOTO 230
160 IF [I]<33 LC[I],10+I:?"-";
170 N=1
180 Z=[I]-N
190 IF Z>0&&Z<34 LC Z,10+I:?"(";
200 N=N+1
210 IF N<6 GOTO 180
220 LC Z-1,10+I:?CHR$(0);
230 NEXT
240 GOTO 90

COMMENT

Kidspod運営チーム
Kidspod運営チーム2018/03/26 09:30:12

特に低い弾を避けるときのアニメーションがものすごく滑らかで、びっくりしました。わずか3コマでも、こんなに上手く作れるものなのですね。