“RUN” それは魔法の言葉

私とコンピュータの思い出を、だらだらと綴ります。最近はHSP3でのゲーム作り日記です

197.HSPで作ったAndroidアプリを公開しよう Digi Mole Attack改 その7

いよいよ、今回のメインでもある、AdMobの広告表示を実装する。

HSP3DishのAndroid向けマニュアルに書いてある通りに実装するだけなのだが、その前にAdMobのコンソールで、広告IDを取らなきゃならない。

まずは、アプリを作成して、アプリIDを取得。
そのあと、広告ユニットを作る。

HSP3Dishが対応しているのは、バナー広告とインタースティシャル広告(全面が広告に切り替わるタイプ)の二つ。
それぞれ別の広告IDが必要なので、2つ作る。

取得したアプリIDと広告IDは、HspActivity.java内に記述する。
HSP3Dish Helperの新規プロジェクト作成時に、AdMobを使用するにチェックしないと、AdMob関係のソースが含まれなくなるので注意が必要。

実際のIDの書き方は、HSP3DishのAndroid版マニュアルにあるので割愛。

ここまで準備したら、HSP3側のソースで、devcontrol命令でAdMobを有効にする。
実行しているのがAndroidの時だけバナーを表示する判定も入れている(マニュアルの通り)

;AdMob(バナー広告)を有効にする
getreq v_platform,SYSREQ_PLATFORM
if ( v_platform = PLATFORM_ANDROID ) {
	devcontrol "AdMob",0; AdMobを有効にする
}

これで、アプリ画面の下側にバナー広告が表示されるようになる。のだが、アプリ上に重なって表示されてしまう。
そのため、アプリのスクリーンサイズを少し伸ばして、その部分はboxf命令で黒く塗りつぶした。

電卓の下側の黒い部分が、バナー表示用に伸ばしたところ

HSPアプリ側の実装はここまで。

196.HSPで作ったAndroidアプリを公開しよう Digi Mole Attack改 その6

残りの修正は、駆け足で紹介していくw

ボタンの判定

スタート画面のボタン機能を作っていく。
ボタンは数字キーを除くと、全部で4つ。

  • マニュアル表示
  • 時刻/ハイスコア切替
  • ミュート
  • スタートボタン

ボタン自体を押したかどうかは、タッチ処理の中に座標判定を組み込むだけでよかった。

元ネタのMG-777は、トライスリーという名前で、ゲームが3つあり、ボタンで切り替えられていた。
そのボタン群を、時刻、ミュート、スタートボタンとして使用する。

タイトル画面とマニュアルの表示方法変更

以前は、文字だけのタイトル画面を表示して、スタート、チュートリアルの表示を行うタッチ判定をしていた。
タイトル画面は表示せず、筐体画面に時計が表示された状態に変更。
チュートリアル→マニュアルに名称を変更。マニュアル表示ボタンを別途設けて、ゲームスタート前に押したら表示するようにした。

マニュアルの書き直し

マニュアルも筐体画像を刷新して作り直し。説明書風に変更。

ミュートの追加

ミュートボタンを押したら、音を鳴らないようにする。
液晶左上に「MUTE」の文字を表示する

時計機能の追加

記憶には無かったが、元ネタの方も時計機能が付いていたらしいので、追加。秒まで表示する。
時刻/ハイスコア切替ボタンを押すと、ハイスコアも表示するようにした。

これで、ゲーム全体の修正は完了した。

195.HSPで作ったAndroidアプリを公開しよう Digi Mole Attack改 その5

前回の続き。
mod_picmesで文字を表示するのは、培養臼や竜巻鮫でやっているし、作成ツールがあるのでそれを使ってサクサクっと準備ができた。

どんなメッセージをどのタイミングで出すのかを考えてみたが、そんなになかったw

  • ゲーム開始時
  • ゲームオーバー時
  • レベルクリア時

ゲーム開始時は「START」、ゲームオーバーはそのまま「GAME OVER」と表示するだけなので、レベルクリア時のメッセージをいくつか用意してみようと思う。これはプレイしてみてからのお楽しみということで。

プレイ中にも何か表示してみようかと思ったが、このゲーム、結構集中力がいるので、他の表示がちらちら出るとウザいと思われ、止めた。

イメージはこんな感じ。

実機と同じ7セグメントのフォントだと、アルファベットが厳しい。
雰囲気が合ってればいいやwwってことで、14セグメントフォントを使ってみた。

うん。これならギリ読めるな。

続けて、ハイスコアの保存処理を作った。
このゲームには、レベルとスコアがあるので、それぞれをハイスコアとして記録する。
といっても、ゲームウォッチのGAME AとBのスコアと同じ仕組みなので、ファイル名だけ変えてサクッと移植w
保存したハイスコアを表示する機能は、ゲームスタート前に、「TIME」ボタンを押したら時計表示と切り替えるように追加処理を作っていく。
次回に続く。

194.HSPで作ったAndroidアプリを公開しよう Digi Mole Attack改 その4

ゲーム内容の修正は、あと2項目。

  • モグラを叩いたときの振動追加
  • ゲーム全体のスピードアップ率の調整

振動の追加は、ちょちょいとできた。
devcontrol "vibrate",50 みたいに、devcontrol命令を入れるだけ。

次は、ゲーム全体のスピードアップの調整に取り掛かった。

こちらは、モグラの出現や倒した後などのステータスに応じて、最大フレーム数をセットし、徐々に早くなるようにしている、はずだった…。ソースを見て、びっくり。レベル2以降は、つじつま合わなくね?ってぐらい、スピードが上がる処理になってた…
我ながら、なんてソース書くねん!ってツッコんだわw

ステータスごとに待つフレーム数を、係数を変えつつ調整できるように、プログラムを書き換えた。
レベルが進むごとに、フレーム数を減らしてスピードアップさせるのだが、プログラム的には微調整レベルで、特に大きな修正を加えなくてもよかった。

洗い出していたゲーム内容の修正は、これで終わりだったが、もう少し手を加えてみる。

せっかくゲーム部以外に電卓部の液晶のスペースがあるので、ここに簡単なメッセージを表示してみることに。
最初に作った時は、mod_picmesを知らなかったので、フォントは数字とモグラの文字を画像にして、celputで表示している。
これを全部mod_picmesを使って表示するように作り替えてもいいのだが、フォントの位置関係やサイズがずれると調整が面倒wなのと、時計表示を作るつもりなので、電卓部の表示のみ、mod_picmesを使用することにした。

次回へ続く。