2016年10月16日日曜日

ちょこっとAdMob(小ネタ編)


広告の表示/非表示の制御を追加しました。

ちょっとハマりかけたのは、Threadについてです。

表示/非表示は、ゲーム中のメイン画面は非表示、それ以外の画面は表示、ということにしましたが、私のアプリでは、場面転換などもゲーム用のThreadで行っています。

しかし、adviewのsetVisibility()は、メインスレッドで行う必要がありました。ということで、Handlerを使って、こんな風にすることで解決しました。

    handler.post(new Runnable() {
    @Override    public void run() {
        adView.setVisibility(View.VISIBLE);
    }
});

無事に表示/非表示の制御が追加できました。


2016年10月13日木曜日

ちょこっとAdMob(復活編)


自作アプリにAdMobを取り込もうとしています、の続きです。

昨日の不具合(ゲームのメイン画面がフルサイズで表示されない件)はLayoutのパラメータの設定不足でした。
MATCH_PARENTを指定すると、フルサイズになりましたが、そうすると、広告を表示するスペースがなくなってしまいます。

なので、サンプルにあったRelativeLayoutではなく、FrameLayoutをつかって、広告を重ね合わせることにしました。
ゲームのメイン画面はbottomのほうにスペースがあるので、gravityをBOTTOMにしました。



でもまだ表示/非表示の制御を入れていないので、常に広告が表示されている状態です。
これは「ゲーム デベロッパー向け: 広告に関するおすすめの方法」にやりかたがあるので、なんとかできそうです。

2016年10月12日水曜日

ちょこっとAdMob(頓挫編)


自作アプリにAdMobを取り込もうとしています。

スタートガイドに沿って、いろいろ手続きをしました。
一カ所(Google レポジトリを使用する場合は、レポジトリをインストールするよう求めるメッセージが表示されることもあります。)というところがありますが、そんなメッセージは出てこなかったので、Android SDK Managerから手動でGoogle Repositoryというのをインストールしました。

それで、ビルドして実行したところ、



こんなふうに、ゲームの画面のサイズが小さくなってしまいました。
今回の変更前は、setContentView()でゲーム用のsurfaceViewを指定していたのですが、今回は「ゲーム デベロッパー向け: 広告に関するおすすめの方法」を参考に、RelativeLayoutにsurfaceViewとadViewを配置するようにしてみたのですが、これだとSurfaceHolderのsetFixedSize()の設定どおりにならないようです。

surfaceViewだけをRelativeLayoutに配置して、setContentView()にrelativeLayoutを渡してみましたが、同様な表示になったので、adViewは関係ないようです。こりゃまいったな。

2016年10月11日火曜日

ちょこっとAdMob(思い付き編)


わかってます。ダウンロード数の少ないアプリは広告メディアとしての価値はないです。

でも、AdMobを自作アプリに組み込むとしたら、どういう作業が必要なのか興味があるので、試してみようかなと思っています。

すでに公開済みのアプリに広告を追加すると、せっかくダウンロードしてくださった方に申し訳ないので、新規に作ってみました。



矢印をタップすると、その矢印の方向にある矢印とドッキングします。
ただし、矢印にドッキング可能な、ほかの矢印がまだ残っているのにタップしてしまうとアウトです。
(行き場を失うことになるから。)

さて、AdMobですが、「ゲーム デベロッパー向け: 広告に関するおすすめの方法」というドキュメントに、SurfaceViewを使うケースについての解説があるので、それを参考にすると組み込めそうです。

このドキュメントによると、「バナー広告を表示するのは、ゲームの一時停止中やクリア時など、ユーザーが画面でゲームプレイに集中していない状況に限定することをおすすめします。」とありますので、場面に応じて表示/非表示を切り替えなければなりませんが、その方法も開設されています。


ということで、ゆるりと試していってみたいと思います。つづく。

2016年10月8日土曜日

ゲームアプリ第六弾「幸せの記憶」をGoogle Playで公開できました


ゲームアプリ第六弾「幸せの記憶」をGoogle Playで公開できました。




制作中の画面と、色などが少し変わりましたが、ゲームの基本的なデザインは同じです。



ゲーム性として変わったとすれば、これは第五弾「幸せのもつれ」でも最終的に変えたところですが、「幸」の文字の色だけ赤にしたところです。

これによって、「幸」と「辛」などを間違える、といったことは起きにくくなり、単に赤色の位置を覚えればいいということになりますが、今回は、先に進んでいって、ヒントの表示時間が短くなってくると、「幸」を認識すること自体が難しくなりすぎるのと、そういう場面でも、やはり「幸」と「辛」を間違えるというミスは起きにくかったので、このようにしました。

ところで、今回はGoogle Playで「幸せの記憶」を検索しても、このアプリは出てきませんでした。前回の「幸せのもつれ」は出てきました。アプリの名前を決めるときは、そういったことも意識する必要がありますね。





2016年9月4日日曜日

ゲームアプリ第六弾制作中


ゲームアプリ第六弾は、「幸せ三部作」完結編、「(仮称)幸せの記憶」です。

とはいっても、この三作は「幸せという字と辛いという字は似ている」を土台にしているという以外は、特に関連がないので、実は何か完結する、というものではないですね。

それで、今回のゲームは仮タイトルから想像できるとおり、「記憶」ゲームです。
一定時間、以下のような画面が表示されます。

(開発中)


一定時間の間に「幸」という字の位置を必死でおぼえます。
一定時間後にはパネルがすべて裏返しになります。

(開発中)


そこで、先ほど記憶した「幸」の位置をタップして、間違えずにすべての「幸」を見つけると、そのラウンドはクリアとなります。
前の二作に負けず劣らず「単純」な内容です。

ラウンドをクリアすると「NUMBER(仮)」と「TIME(仮)」という二つの選択肢が現れます。

NUMBERを選択すると、次のラウンドの文字パネルの数が増えます。
TIMEを選択すると、ラウンドの最初の答え表示の時間が短くなります。

そして、以下のような画面が表示され、プレイヤーが選択してきた道筋が表示されます。
右方向は「TIME」を上方向は「NUMBER」を示しています。

(開発中)


パネルの数が少ないときに「TIME」を選んでいくと、数が少ないので楽勝ですが、右端に突き当たると、あとはNUMBERしか選択肢がなくなり、回答表示時間が短いまま、数だけ増えていくと大変かもしれません。
一方、「NUMBER」だけ選んでいくと、回答表示時間は長いまま、数が増えるので、そこそこ進めますが、上端に突き当たると、あとはTIMEしか選択肢がなくなり、数が多い状態で、回答表示時間が短くなっていくことになり、それはそれで大変そうです。

ということで、ここでどういう選択をしていくかが大事になっていきます。

開発中の今のところの問題点は、開発者本人の記憶力がかなり低下していて、思うように先に進めないところです。

前にこのブログでも書いたかもしれませんが(←書いたかどうかもおぼえられない...)、難易度を自分に合わせちゃっていいのかが、ここでも問題です。

ということで、まだ完成にはほど遠いですが、9月の近況報告でした。



2016年8月21日日曜日

マルチタッチについて学習中


検討中のゲーム・アプリで「2点マルチタッチ」を使いたいので、テスト実装しています。




ドキュメントを読んで、「こんな感じでイベントが来るのかな」と思っていたら、ちょっと思っていたのと違いましたが、対処できました。

なににとまどったか、一応メモしておくと、

  • 一点しか動かしていないつもりでも、MOVEは複数点の状態をまとめて1つのイベントとして来るらしい
  • 複数まとめられるつもりでいると、DOWNやUPがうまくいかず(特にUP)、getActionIndex()で動きのあった点のindexを取得しないといけないらしい

ということで、ゲームのほうは、まだまだ初期のアイデアが浮かんだだけの段階なので、いつになるかわかりませんが、ゆるゆると作っていきます。