« php 5.3 → 5.6 | メイン | Firebase Functions 1 »

java

java版 FlappyBird の学習

 ソースが公開されている 小規模な java版 FlappyBird
https://github.com/granttitus/FlappyBird
フォーク ...▼
 オリジナルはlinux系のシェル「run」で、コンパイル → 実行 → 生成ファイル削除 するシンプルなもの。ただし、実行時のディレクトリに画像「lib/*.png」存在する前提。「SPACE」で開始・上昇、「P」で一時停止・再開、「R」でリセット。

●自分好みのコードスタイルに整形
git commit

●実行時のディレクトリに画像「lib/*.png」存在する前提を どこでも実行できる1つの jarファイルを生成するように修正。
git diff
 実行時、jarファイル自身に含まれるリソースにアクセスする実装と jarファイルを生成する基本パターン。ついでにWindows DOS用のビルドバッチ「run.bat」も追加。実行終了時にoutディレクトリを削除するので、実行中に FlappyBird.jar を複製できる。

●鳥の座標・加速度表示。鳥の座標が落ち続けていたのを改め着地状態追加。座標計算の冗長箇所を除去。
git commit
 紛らわしいのは 上に配置されるパイプは「pipe-north.png」ではなく 南向きの意味で「pipe-south.png」。


●試みとして、javax.swing を使わず java.awt で実装すると...
git diff
 ダブルバッファリング実装しないと画面がちらつく。一度他のウィンドウにフォーカスするとキーボード入力不能となる。

●ダブルバッファリング実装例1
git commit
●ダブルバッファリング実装例2
git commit
●ダブルバッファリング実装例3
git commit
●キーイベントのフォーカスアウト対応
git commit

アレンジ編
●上・下・上・下パイプ・・・前提Listを 下パイプListだけのシンプル構成に
git commit
●「パイプのペア」List構成とし、上パイプを下パイプ上下反転表示に
git commit

●Androidでの実装例
Google Play Store / Flappy Crow

トラックバック

このエントリーのトラックバックURL:
https://www.remix.asia/cgi/mt/mt-tb.cgi/7750

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)