【スクラッチ】釣りゲームを作りました

2021年10月21日木曜日

Scratch スクラッチ プログラミング

t f B! P L





スクラッチで釣りゲーム 


つくりかたの解説動画




スクラッチを使ったプログラミングで「釣りゲーム」を作りました。

今回はかなり場当たり的なコーディングをしてしまったため、中身のコードを見られると恥ずかしいです。。。


最初は単純な釣りガチャっぽくして魚を1クリックで釣るだけのものにしようと思ってたのですが、絵を描いているうちに楽しくなってきてしまい最終的にはゴミ拾いをして海をきれいにするゲームになってしまいました。^^;


↓ でプレイできると思います。





フルスクリーンで遊びたい場合はこちらです↓↓↓

釣りゲーム(フルスクリーン)


プロジェクトを見たい場合は↓のページを開いてください。

【スクラッチ】釣りゲーム




ゲーム説明


タイトル画面



タイトル文字の「釣りゲーム」が「ピクセル化の効果」でジワジワ出てきます。

ピクセル化の効果を 100 → 0 へループで-4ずつ変化させています。


主人公も船に乗って登場するようにしました。

ピクセル化の効果はファミコンぽくていいですね。^^




ポイントを選択する画面



半透明になっているエリアをタップすると浮き輪を投げるポイントを選択できます。

ある程度、見えている魚が出現するようになっているので釣りたい魚のところに投げると良いです。




正確に選んだポイントへ投げてくれます。^^




魚をつかまえる画面



魚のシルエットがエサに向かって近づいてくるので、ぶつかった時を狙って画面をタップしてください。

上手くいくと魚がエサに食いつきます。
シルエットが大きいと、釣り上げる魚も大物になります。




大物はなかなか食いつきませんが、ねばればいつかは釣ることができます。



つり糸を巻く画面




魚がエサにくいついているので上手く引き寄せて釣り上げましょう。

そのために、画面の下を流れているゴミをタップして拾いまくります。
ゴミを拾っていくと、魚がどんどん近づいていきます。

海から引っ張りあげることができたら成功です!




小さい魚は力が弱いのですぐに釣り上げられます。



魚たく画面




釣り上げた魚の魚たくと重さが表示されます。

集中線が表示されるコードは、qramoさんのコードを参考にしました。


用意する絵はこれだけ!
新規でも数秒で作れます^^



今回つかった魚の絵は全部スクラッチの素材の中にあるものです。

魚たくに使用したコスチュームは、元の絵を全部選択した状態で線の色を白にして、塗りつぶしを「なし」にしてから、もう一度同じ画像をコピーして今度は全部の塗りつぶしを黒にしてから「最背面」に移動させて、少しだけサイズを大きくしました。


重さの表示につかっている数字は、自分で適当に0~9とkg を描いてみました。
かなり適当です。。。






その他部品


その他、自分で作った絵です。



操作方法がわかるようにタップさせるアイコンを作りました。
指をあげているものと交互に表示させています。




ゴミをタップする操作がわかるようにアイコンを作りました。
釣りゲームなのにゴミを拾うなんて、最初わからないですよね、、、^^;



釣り人は色々なポーズを用意しました。



ポイントに投げるアクションです。




小魚を釣るときです。




普通サイズの魚を釣るときです。
まだ余裕があります。




大物を釣るときにです。
真剣な顔になってきました。





超大物を釣るときです。
大格闘しています。




作ったスプライト




各画面のシーンと手前と奥などで切り分けて作っています。

魚は「ターミナル2」の中に入っています。
ゴミは「Potion」の中です。

スプライトの名前はあんまり気にしていませんでした。。。



背景


背景は3種類です。




海上の場面用です。




海中の場面用です。





結果表示の魚たく画面用です。






釣り糸の伸び縮みについて


始点は「ターミナル1」のxy座標になります。



終点は「ターミナル2」のxy座標になります。



鎖の1パーツになる「ビット1」を始点から終点に向かってつなげています。



まず、「ビット1」のオリジナル(クローンしてないもの)を始点に移動させて「向き」を「ターミナル2」にします。

そこから「8歩進む」で動かして「ビット1」のクローンを配置していきます。
繰り返した後、「ビット1」のオリジナルが「クローン2に触れた」場合に最後のクローン配置をして、オリジナルは始点に戻しておきます。

始点と終点の距離が縮んだときは、余ったクローンは自分で削除します。
逆に始点と終点が伸びたときは、足りない分だけ足して補います。

ゲーム中のほぼ毎フレームで始点と終点の位置を確認し続けています。

注意しなければいけないのは、スプライトは画面外に完全に隠れる位置へ移動することができないので、「ビット1」が移動した結果、「ターミナル2」へたどり着けなくなるケースがあるということです。

その場合は無限ループとなってしまい、クローンを作り続けた結果、パフォーマンスが悪くなったり、ページが固まったりします。

クローンの生成にも制限があるので、今回は始点から終点までに生成するクローン数を60個までにしました。
60個以上のクローンを作ろうとしたら繋げるのをやめています。

釣り糸なので「線」を描画するほうが楽だったかもしれないのですが、最初は釣りゲームではなく別の用途に使おうかと思って作っているうちに、そのまま流用してしまいました。


今回は、実験で処理を作っているものをそのまま使ってしまったので、コードはかなりぐちゃぐちゃになっています。

あまり参考にならないですが興味のあるかたは覗いてみてください。^^


最後の「つれたー」の声は、中間テスト期間中の息子が手伝ってくれました。^^
娘が聞いて大笑いしてました。^^

この記事を最後まで読んで頂きありがとうございました。



他の作品記事もよければ読んでみてください。


このブログを検索

ブログをよくする

自己紹介

自分の写真
はじめまして。あまるちゃんです。 子供のプログラミング学習に協力できるように教え方を勉強中です。 このブログでは自分が学んだことを投稿していきます。

連絡フォーム

名前

メール *

メッセージ *

QooQ