センサーマネージャをインスタンス化し
MainActicityをリスナーとして登録
センサ更新タイミングは
SensorManager.SENSOR_DELAY_GAME を設定する
これはゲーム用に最適化された感覚で
センサーの値が更新される
基本的には毎秒60回に近い回数で更新されるけど
端末のスペックで変わるので絶対じゃない
SensorEventListener インターフェースを実装するため
abstract な関数の
onAccuracyChanged と
onSensorChanged を追加
onSensorChanged() は
センサーが保持している値が変化したら呼び出され
onAccuracyChanged() は
センサーん制度が変更されたときに呼び出される
センサーを1種類しか使わないなら
onAccuracyChanged() は使わない
センサーのリスナーとして登録しているため
センサーの値に変化があったときにonSensorChangedが呼ばれる
カテゴリー: AndEngine
Font クラスとTypefaceクラス
Fontクラスは
端末に搭載されているフォントを利用してインスタンス化し
描画に利用する
引数は
FontManagerクラスのインスタンス,
読み込み先のTexture ,
フォントの種類,
フォントのサイズ,
アンチエイリアスの有効/無効,
色
となる
アンチエイリアスは、緑の処理のこと
true にすると緑がなめらかに描画される
Typefaceクラスについて
Typeface クラスは
フォントの種類が定義されているクラス
Fontクラスに渡すときに変更することで
太字にしたり、イタリック体(右斜めに傾いたフォント)
にすることができる
CSSで設定するようなかんじ
DelayModifier クラス
DlayModifer クラスは
単純に何もせずに待つアクション
SequenceEntityModifier の中に配置すると
開始を遅らせたり
アニメーションの間に待ち時間を発生することができる
イージングとアニメーション変化
イージングとは、
与えられた変化量と時間を各コマ均等に割り当てではなく
偏らせることでアニメーションに変化を付ける技術のこと
例えば1秒間に右へ10ピクセル移動するアニメーション
イージングなしだと移動するときには
1+1+1+1+1+1+1+1+….=10
というように
最初から最後まで
1フレームの移動量は変わらない
これをイージングを使うと
0.2+0.4+0.8 +1+1.2+…+2=10
というように移動量を多くすることで
段々加速する演出アニメーションができる
ボールのリバウンドとか
行きすぎたから戻るとかもイージングで実現できる
ビットマッブフォントと端末搭載フォント
ビットマッブフォントと端末搭載フォント
ビットマッブフォントは、影や色の
グラデーション
使えるフォントも自由なので
見た目はいいけど
使う文字を事前に用意しなければならないし、容量もかさむので
使いどころに注意
基本的に、日本語を利用するときには
端末搭載フォント
日本語を使わないときには
ビットマッブフォントを使う
規模の大きいゲームだと
1つのゲームの中でも
日本語を使うときには端末搭載フォント
英語部分は、ビットマッブフォント
を使うのがほとんど
Font クラスとTypefaceクラス
Fontクラスは
端末に搭載されているフォントを利用してインスタンス化し
描画に利用する
引数は
FontManagerクラスのインスタンス,
読み込み先のTexture ,
フォントの種類,
フォントのサイズ,
アンチエイリアスの有効/無効,
色
となる
アンチエイリアスは、緑の処理のこと
true にすると緑がなめらかに描画される
Typefaceクラスについて
Typeface クラスは
フォントの種類が定義されているクラス
Fontクラスに渡すときに変更することで
太字にしたり、イタリック体(右斜めに傾いたフォント)
にすることができる
CSSで設定するようなかんじ
多重スクロールについて
iPhone の横スクロールゲームのほとんどは
いくつかの層をつかって
別々の速度で移動することにより
リアルな多重スクロールを実現している
Android ゲームは端末の問題で満足なスピードが
でないらしいけど
たぶん、いずれ使える様になると思う
テクニックとしては
背景画像を複数のレイヤーにわけて
それらを異なる速度で動かせばOK
遠くにある層ほどゆっくり動かすようにする
つまり
背景例やー
移動しない
一番遠い雲などのレイヤー
1フレームあたりの移動量はほんの少し
2番目に遠い山とかのレイヤー
1フレーム辺りの移動量はやや多め
一番近い草とかのレイヤー
1フレームあたりの移動量は多めにして
主人公の移動量と同じぐらいにする
というかんじにする
Sound クラス
Soundクラスは
音声を再生するためのクラス
SoundFactory.createSoundFromASsset()
で指定したファイルを読み込んだあとは
play() で再生できる
インスタンス化には
SoundFactoryクラスの
createSoundFromAsset() を
使う
引数は
SoundManager
Context
mfxフォルダから見たサウンドファイルへのパスを指定
今回の参考書籍
AndEngine で効果音を利用するには
AndEngine で効果音を利用するには
効果音の仕様を明示的に許可する必要がある
EngineOption.getAudioOptions().setNeedsSound(true)
でサウンド使用を許可する
SoundFactory.setAssetBasePath(“mfx/”)
でサウンドファイルの格納場所を指定
ちなみに、サウンドファイルを格納するため
asset フォルダへ
mfx フォルダを作成し、ここにサウンド関連ファイルを
置いた場合になる
ちなみに、EngineOptions は
変数にしておくことで、簡単に使える
EngineOptions eo =
new EngineOptions(true,ScreenOrientation.PORTRAIT_FIXED,
new RatioResolutionPolicy((CAMERA_WIDTH,
CAMERA?HEIGHT),camera);
とすれば
効果音の使用を許可するなら
eo.getAudioOptions.setNeedsSound(true);
というようにできる
今回の参考書籍
SNSシェア機能について
アプリを広めるにはSNSでシェアしてもらうのが効果的
AndEngineでつくるAndroid 2Dゲーム (SMART GAME DEVELOPER)
のサンプルアプリには
SNSシェア用の Intent を発行する処理を実装している
これは暗黙的Intent を使って
ユーザがこのみの facebook や
twitter クライアントアプリを使えるようにしている
OAuth とか Twitter4j などの
フレームワークとかで
アプリ内部で共有することもできるけど
実装には手間がかかるため
基本的には暗黙的Intent を使ったほうが楽
今回の参考書籍