2011年8月16日

Androidでオセロゲームを作ってみる (4) 文字列をぐるぐる回す方法

Androidでオセロゲームを作ってみる (1)
Androidでオセロゲームを作ってみる (2) ゲームロジックの実装
Androidでオセロゲームを作ってみる (3) 思考ルーチンの実装
Androidでオセロゲームを作ってみる (4) 文字列をぐるぐる回す方法
Androidでオセロゲームを作ってみる (5) 裏返しアニメーションを付けてついに完成!


前回までで思考ルーチンがそこそこ動く様になってゲームとしては結構遊べる状態になったので、今回からは少しずつグラフィックを改善して行きたい。

ひとまずこんな感じで、ゲーム終了時の結果表示の文字列をぐるぐる回してみた。
http://www.youtube.com/watch?v=AYld0bnjxeI

FrameLayoutを使ってオーバーレイ表示


前回まではカスタムのReversiViewの中でdrawTextを使って勝ち負けを表示していた。今回はその代わりにAndroid標準のアニメーション機能を使いたいので、ReversiViewの中心に重なる様にTextViewを配置して、そこに文字列を表示した。

複数のViewを重なる様に配置するには、FrameLayoutを使うと良いらしい。

TextViewには標準でドロップシャドウの機能が付いているのでこれも利用した。


文字列を画面の中心に配置するのは、

 android:layout_gravity="center"

とするだけで出来た。素晴らしい。^^

ちなみにTextViewの上のViewは、ゲーム終了時に画面の背景を暗くするアニメーションを入れる為に使っている。




AnimationをXMLファイルで定義


AnimationをXMLファイルで定義するには、res/の下にanimフォルダを作ってそこに適当な名前でXMLファイルを作成する。

色々試行錯誤して見た結果、こんな形になった。
回転しながらズームイン&フェードインして、一瞬止まった後でスーっと上に動く感じ、が作りたかったので。

また文字列を回すのと同時に、背景を少しずつ暗くするのもalphaアニメーションを使って行なっている。

あと、ちょっとハマったのは、setタグの属性として「xmlns:android=...」を付けないと set全体にfillEnabledとfillAfterの属性を付けられなかった点だった。




AnimationをTextViewに適用


ActivityのonCreateでAnimationUtils.loadAnimation()を呼んで上で定義したアニメーションを準備しておく。

実際にアニメーションを開始するには、TextViewのstartAnimation()を呼ぶだけだ。





ソースコードと次回の予定


現時点のプロジェクト全体のソースコードはこちら。
mikehibm/MiReversi at ver4 - GitHub

次回はいよいよコマをひっくり返す時のアニメーションを作りたい。それが出来たら一応完成かな?


Androidでオセロゲームを作ってみる (1)
Androidでオセロゲームを作ってみる (2) ゲームロジックの実装
Androidでオセロゲームを作ってみる (3) 思考ルーチンの実装
Androidでオセロゲームを作ってみる (4) 文字列をぐるぐる回す方法
Androidでオセロゲームを作ってみる (5) 裏返しアニメーションを付けてついに完成!








 .