「キャラクター(コスチューム)が歩いている時に音を鳴らす」をやりましたが、このままでは「音を出したくない」時にも音がなってしまいますので、「音量のオン・オフ」の設定を追加してみます。
音量のオン・オフ
シンプルに考えると「上矢印キーを押して音量を上げる、下矢印キーを押して音量を下げる」といった方法も考えられそうです。
上矢印キーを押す・・・音量 +10
下矢印キーを押す・・・音量 -10
これを
上矢印キーを押す・・・音量 +100
下矢印キーを押す・・・音量 -100
とすれば、100か-100なので、オンかオフか、といった切り替えにできそうな気がします。
このままでは・・・
ただし、このままではキャラクターの「上矢印キーと下矢印キー」を使うことになってしまいますので、この先、例えば「上矢印キーでジャンプ」みたいな機能を追加させる時にまずい気がするのと、キーボードをそのまま音量調整に使うのは良くない気がしますので、「音量オンオフボタン」を追加してみます。
スプライトを追加する
ボタンのようなアイコンがあるので追加してみます。
2種類のコスチューム色のボタンが追加されました。
このスプライトが押された時
ボタンを押した時にオン・オフしたいので、「このスプライトが押された時」を追加します。
この2つを、「ボタンを押すたびに切り替える」とすれば良さそうな気がします。
「次のコスチュームにする」を追加すれば、押すたびに色が変わります。
条件分岐を追加する
言語化すると、こんな感じかな?と思います。
もし「音量コスチュームがON(青色)なら、音量コスチュームを次のコスチューム【OFF(灰色)】にして音量を0」にする。「音量コスチュームがOFF(灰色)なら、音量コスチュームを次のコスチューム【ON(青色)】にして音量を100」にする。
音量が0か100か。
このままでは・・・
このままですと、スプライトを押した時に、コスチュームは変わりますが、音量が変わりません。音量が変わるのは、このスプライト(ボタン)だけです。
この場合は、例えばですが「変数」を使うことで解決できそうです。
音量オンオフ変数
例えば、
もし音量オンオフ変数=1のときは音を鳴らす。
とします。
コスチュームの名前も分かりやすいように、volume-on、volume-offと変えてみます。
音が鳴る条件を追加する
「もし音量オンオフ変数が1なら音を鳴らす」を追加してあげれば、1の時だけ音がなるということになります。
ボタンの条件を見直してみる
もし音量オンオフ変数が1なら音量オンオフ変数を0にする、音量オンオフ変数が0なら音量オンオフ変数を1にする。
としてみます。
こうすると、音量オンオフ変数は、「1」にはなりますが、「0」にはなりません。
なりませんというより、0になった後に下の条件式(もし)に入ってしまいますので、必ず最後は1になってしまいます。
このスクリプトを止める
「このスクリプトを止める」で回避してみます。
これで切り替わるようになりました!!もっと良い方法があればぜひ教えて欲しいです!!
オンオフ表示を追加する
音量がオンなのかオフなのか分かりやすいように、表示を追加してみます。
初期値を音量オフに
いきなり音が鳴り出さないように、初期値は「音量オフ」にしておきます。
|■が押された時、の後に追加しておきましょう。
もちろん、初期値を「音量オン」にしておいた方が良い場合もありますのであしからず。(ゲームが始まって音が鳴らなければまずいので・・・)このあたりは「メニュー」などを作って設定画面を追加してあげても良さそうです。
コスチュームの順番も並び替えて「音量オフ」の方を先にしておきましょう。
完成
音量のオン・オフ機能が追加されました!!
完成版はこちら
※「音量オン」になっている時は、音が鳴るので注意!!