これまでに作ってきたゲームはPCでないと操作できませんでした。今回はスマホでも操作できるようにします。

スマホ用のボタンを追加する

ボタンのようなものを追加してこれをタップするとプレイヤーを操作できるようにします。それからゲームの操作法が書いていないとユーザーはどうやればゲームをスタートさせるかわからないのでそれも追加します。

InitButtons関数はボタンのようなものを表示させ、ここをタップしたり離したりするとPCで操作したときの

と同じ動作ができるようにします。

それからInsertHowToPlay関数は以下のようになっています。HTMLに直接書くとスマホ用のボタンが表示される場所が変わってしまうのでJavaScript側に書きます。

これで完成? 今後の課題

これで完成!ということであるプログラミング配信系YouTuberに紹介してもらうことにしました。それがその動画です。

ここで表面化した問題としては配信時のボリュームのままではBGMがちょっと大きすぎるので調整が必要となった、スマホでも遊べるように小さな画面にしたがPCでは見づらい、方向転換してもプレイヤーのイメージが同じというのは違和感があるなどです。敵が交差点でUターンにするのはなしにすればどうかという感想もでましたが、これはこのゲームの肝(敵が2体で残機が多いので簡単そうに見えるが、実際には敵が挟み撃ちを仕掛けてくるなどえげつない動きをするので難しい)なので却下させていただきます。

BGMのボリューム調整ができないことと、表示サイズを変えられないというのは配信をしている人に紹介してもらうという観点では致命的なので改善することにします。

BGMのボリュームを調整できるようにする

PCの場合はShiftキーを押しながら↑または→キーを押しているときはボリュームを上げ、Shiftキーを押しながら↓または←キーを押しているときはボリュームを下げます。いきなり最大ボリュームでBGMがなり始めるとユーザーがびっくりするかもしれないのでボリュームの初期値は小さめに設定します。

ボリュームを設定するための関数を作成します。0なら無音で1.0が最大値です。実際には0.3くらいでほとんど1.0と同じくらいの音として聞こえます。

ボリュームを上げたり下げる関数を作ります。

SHIFTキーが押されているときで方向キーがおされているときはボリュームを変更します。またゲーム中はデフォルトの操作を抑止します。

該当するキーが押されていたらボリュームを変更します。

スマートフォンでアクセスしたときもボリュームを調整できるようにします。

InitButtons関数に以下を追加します。

ボタンがタップされたらボリュームを調整する処理をおこないます。