Hana道場【師範】のブログ

IchigoJamの徹底解説ブログ

【人気ゲーム】ver1.4でつくれる糸通し<Hana道場ver> for IchigoJam

f:id:hanadojo_sihan:20200125162027j:plain

 

三角関数糸通しみたいなアニメーションできた!と投稿した去年のツイート

 その後、すぐにPCN上田の斎藤さんが三角関数なしで実装してくれました。

十勇士パソコンクラブ - 糸通しゲーム

by Shiro SAITO

 

小学校でも作ったそうです↓

準備簡単、すぐ楽しい!初のIchigoDyhook、総合2コマ、鯖江のプログラミング教育の授業動画とスライド公開とIchigoJam新人気ゲーム紹介 - 鯖江東小学校小5/小6 #KidsIT #IchigoJam #sabae / 福野泰介の一日一創 / Create every day by Taisuke Fukuno

by  taisuke fukuno 

 

今回は、斎藤さんのプログラムを改良してつくった、Hana道場でも大人気の糸通し<Hana道場ver>を紹介していきます。

(去年にはできていましたが、ブログにするのを忘れていました...)

f:id:hanadojo_sihan:20201006151035j:plain

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) ハイスコアの表示

DRAW 数1,数2{,数3,数4}{,数5} 
数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

twitter.com