見出し画像

【Scratch(スクラッチ)入門】#06音量のオン・オフ(ON/OFF)機能を追加してみる

「キャラクター(コスチューム)が歩いている時に音を鳴らす」をやりましたが、このままでは「音を出したくない」時にも音がなってしまいますので、「音量のオン・オフ」の設定を追加してみます。

音量のオン・オフ

画像1

シンプルに考えると「上矢印キーを押して音量を上げる、下矢印キーを押して音量を下げる」といった方法も考えられそうです。

画像2

画像3

上矢印キーを押す・・・音量 +10
下矢印キーを押す・・・音量 -10

画像4

これを

上矢印キーを押す・・・音量 +100
下矢印キーを押す・・・音量 -100

とすれば、100か-100なので、オンかオフか、といった切り替えにできそうな気がします。

画像5


このままでは・・・
ただし、このままではキャラクターの「上矢印キーと下矢印キー」を使うことになってしまいますので、この先、例えば「上矢印キーでジャンプ」みたいな機能を追加させる時にまずい気がするのと、キーボードをそのまま音量調整に使うのは良くない気がしますので、「音量オンオフボタン」を追加してみます。

スプライトを追加する

画像6

ボタンのようなアイコンがあるので追加してみます。

画像7


2種類のコスチューム色のボタンが追加されました。

画像8


このスプライトが押された時
ボタンを押した時にオン・オフしたいので、「このスプライトが押された時」を追加します。

画像9

画像10

この2つを、「ボタンを押すたびに切り替える」とすれば良さそうな気がします。

画像11


「次のコスチュームにする」を追加すれば、押すたびに色が変わります。

画像12


条件分岐を追加する


言語化すると、こんな感じかな?と思います。

もし「音量コスチュームがON(青色)なら、音量コスチュームを次のコスチューム【OFF(灰色)】にして音量を0」にする。「音量コスチュームがOFF(灰色)なら、音量コスチュームを次のコスチューム【ON(青色)】にして音量を100」にする。

画像13

画像14

音量が0か100か。




画像15

画像16


このままでは・・・


このままですと、スプライトを押した時に、コスチュームは変わりますが、音量が変わりません。音量が変わるのは、このスプライト(ボタン)だけです。

この場合は、例えばですが「変数」を使うことで解決できそうです。

音量オンオフ変数

画像17

画像18

画像19

例えば、

もし音量オンオフ変数=1のときは音を鳴らす。

とします。

コスチュームの名前も分かりやすいように、volume-on、volume-offと変えてみます。

画像20


音が鳴る条件を追加する

画像21

「もし音量オンオフ変数が1なら音を鳴らす」を追加してあげれば、1の時だけ音がなるということになります。

画像22

画像23


ボタンの条件を見直してみる


もし音量オンオフ変数が1なら音量オンオフ変数を0にする、音量オンオフ変数が0なら音量オンオフ変数を1にする。

としてみます。

画像24


こうすると、音量オンオフ変数は、「1」にはなりますが、「0」にはなりません。

なりませんというより、0になった後に下の条件式(もし)に入ってしまいますので、必ず最後は1になってしまいます。

画像25


このスクリプトを止める


「このスクリプトを止める」で回避してみます。

画像27

画像26


これで切り替わるようになりました!!もっと良い方法があればぜひ教えて欲しいです!!

オンオフ表示を追加する


音量がオンなのかオフなのか分かりやすいように、表示を追加してみます。

画像28

画像29

初期値を音量オフに


いきなり音が鳴り出さないように、初期値は「音量オフ」にしておきます。

画像30

|■が押された時、の後に追加しておきましょう。

もちろん、初期値を「音量オン」にしておいた方が良い場合もありますのであしからず。(ゲームが始まって音が鳴らなければまずいので・・・)このあたりは「メニュー」などを作って設定画面を追加してあげても良さそうです。

コスチュームの順番も並び替えて「音量オフ」の方を先にしておきましょう。

画像33


完成

音量のオン・オフ機能が追加されました!!

画像32


完成版はこちら

※「音量オン」になっている時は、音が鳴るので注意!!


サポートお願い致します!