2016年10月29日土曜日

仮称「Golf Numeric」制作快調


いま制作中のゲームアプリは仮称「Golf Numeric」です。

(開発中)

最初Google翻訳とかでいろいろ試して、「Numerical Golf」にしようと思ってましたが、なんかちょっと平凡なので、Golf Numericとしてみました。

英語として意味があるのかどうかは怪しいですが、「Ballet mecanique」とか「aero dynamik」とかとなんとなく似ているので、まあいいか。

内容は、タイトルにあるように数値を使ったゴルフのようなゲームです。

スタートすると、下のような画面です。数字はホール(カップ)までの距離を示しています。
肝心のホール(カップ)は表示されていません。

数字からホール(カップ)の位置を推測するゲームです(ゴルフちゃうやん)。



(開発中)

青い四角は現在の位置です。
ここで、「えいっ」と下のような位置をタップしてみました。

(開発中)

タップした位置に青い四角が移動し、その場所のホールからの距離が表示されます。
「5」なので、ホールから遠ざかってしまったようです。
下に「3」があり、こっちのほうが近そうなので、2打目をタップします。

(開発中)


「2」になりましたので、近づけたようです。
「2」の場合、上下左右隣の距離は「1」で斜め隣の距離は「2」ということにしています。
先に表示されている「3」「5」とこの「2」からホールの位置が特定できました。

(開発中)

ということで、ホールの場所を見つけるとクリアです(ゴルフちゃうやん)。

というのが、次回作になります。よろしくお願いします。




2016年10月19日水曜日

ゲームアプリ第六弾「幸せの記憶」攻略法?


ゲームアプリ第六弾「幸せの記憶」は、「幸」のパネルの位置を記憶するゲームですが、
まじめにすべてを覚えようとすると大変です。



すでにプレイされた方はお気づきかもしれませんが、パネルの配置にはルールがあります。




パネルは必ず中央の軸(水平線または垂直線)に対して線対称、または中心点に対して点対称に配置されます。

また、次のラウンドに進むときに「NUMBER」(パネルの数が増える)を選んだとき、前のラウンドの基本配置に対して追加される形でパネルが増えるようになっています。


「NUMBER」ではなく「TIME」(答え表示時間が短くなる)を選ぶと、パネルは再配置されますが、このとき対称のルール(線対称か点対称か、または線対称の軸)も変化します(同じになることもあります)。


上の図は「点対称」な配置です。
人によって、得意、不得意は違うかもしれませんが、私は点対称は覚えにくかったです。

不得意な配置になったときは、そのラウンドをクリアしたあとで、「TIME」を選ぶと、パネルの配置と対象のルールが変わるので、それに賭けてみるといいかもしれません。

逆におぼえやすい配置だったときは、そのまま「NUMBER」を選んでいくと、数が増えても、覚えるのが楽かもしれません。


点対称をクリア後、「TIME」を選ぶと、↑のように線対称になりました。こっちのほうが覚えやすそうです。

ラウンドクリア後「TIME」か「NUMBER」かを選択するときに、これらのことを思い出すと、先に進みやすいかもしれません。



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