【人気ゲーム】ver1.4でつくれる糸通し<Hana道場ver> for IchigoJam
三角関数で糸通しみたいなアニメーションできた!と投稿した去年のツイート
#IchigoJam 版「糸通し」をつくってみた!
— 初代 *Hana道場【師範】 (@shoichi1031da) December 30, 2019
ガラケー時代によくやっていたゲームです^^
ver1.4は可能性が広がりますね〜https://t.co/d7CXg8DlO7 pic.twitter.com/GerQeehSQg
その後、すぐにPCN上田の斎藤さんが三角関数なしで実装してくれました。
by Shiro SAITO
小学校でも作ったそうです↓
by taisuke fukuno
今回は、斎藤さんのプログラムを改良してつくった、Hana道場でも大人気の糸通し<Hana道場ver>を紹介していきます。
(去年にはできていましたが、ブログにするのを忘れていました...)
Hana道場でのランキング表(最高記録:35)
【Hana道場公式プログラム】ver1.4〜
10 CLV:CLS:Y=3:C=31:H=10
20 R=RND(35)+2
30 IF S>1&&S%5=0&&H>2 H=H-1
40 DRAW 62,0,62,47
50 DRAW 62,R,62,R+H,0
60 FOR X=0TO25
70 B=BTN(30)
80 V=V-B+!B
90 Z=Y+V
100 SCROLL 3
110 DRAW 7,Y,9,Z:Y=Z
120 LC 0,0:?S
130 WAIT 6
140 NEXT
150 IF R<=Y&&Y<=R+H S=S+1:GOTO20
160 IF S>PEEK(#FFF) POKE#FFF,S:SAVE FILE()
170 ?"ハイスコア";PEEK(#FFF)
<操作方法>
↑キーのみで操作します。
↑キーを押すと上昇、押さないと落下していきます。
<変数>
Y:糸の高さ(始点) Z:糸の高さ(終点)
V:糸の高さの増減
K:押したキーのコード C:次にキーが押されるまで保存するコード
R:針の穴の上端の高さ H:針の穴の大きさ
X:スクロール回数(26回スクロールすると、針穴がひとつ生成)
【プログラム解説】
10 CLV:CLS:Y=3:C=31:H=10
20 R=RND(35)+2 針穴の始点を決定
30 IF S>1&&S%5=0&&H>2 H=H-1 針穴を小さく条件を記述
40 DRAW 62,0,62,47 針穴用の直線を引く
50 DRAW 62,R,62,R+H,0 直線に針穴をあける
60 FOR X=0TO25 スクロールアニメーション開始
70 B=BTN(30) ↑キーを押したら1,押してないと0を変数Bに代入
80 V=V-B+!B 加速度的に変数Vを増減させる
90 Z=Y+V 糸の高さ
100 SCROLL 3 左スクロール
110 DRAW 7,Y,9,Z:Y=Z 糸(直線)を始点(7,Y)から終点(9,Z)に引く
120 LC 0,0:?S スコア表示
130 WAIT 6
140 NEXT
150 IF R<=Y&&Y<=R+H S=S+1:GOTO20 穴より高くても低くてもダメ(当たり判定)
160 IF S>PEEK(#FFF) POKE#FFF,S:SAVE FILE() ハイスコアの保存
170 ?"ハイスコア";PEEK(#FFF) ハイスコアの表示
数1,数2の座標から数3,数4の座標へ線を引く(座標は最大63x47)、数5に0指定で線を消し、2指定で反転する、省略時または1指定で線を引く *ver1.4以上
【ポイント①】スコアを5更新ごとに針穴を小さくする
30 IF S>1&&S%5=0&&H>2 H=H-1
Hの最小値は3
【ポイント②】ハイスコアをファイルに保存
150 IF S>PEEK(#FFF) POKE#FFF,S:SAVE FILE()
160 ?”ハイスコア”;PEEK(#FFF)
プログラム領域の最後のアドレス#FFFに書き込んでセーブ
CC BY shoichi1031da / @shoichi1031da