× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。 |
SNS周りの注意点
[twitter] iOSはSocialFrameworkですぐできる Androidは、Intentを使えば早いが、それだと投稿の成功・失敗が取れない。 インセンティブを付与したいときには、Twitterにアプリ登録をして、IDその他を取得。twitter4jを使ってOAuth方式で呼び出す 初回は認証を受ける処理に入るので、フローが変わることに注意。 認証用のIntentに飛ばすためだけのActivityを作ったりもする。 認証をキャンセルしたときに落ちたりもするので注意。(intent.getData().getQueryParameter("oauth_verifier”); が null になった場合、処理を続行させると落ちる) [facebook] iOSはSocialFrameworkですぐできる Androidはかなり面倒。Intentで飛ばすだけならいいが、やらないことも多い [LINE] LINEは画像と文字列を同時に投稿できない。スクショなど画像投稿系はLINEを外すことも多い 成功・失敗の判断ができない。ボタンを押した時点でインセンティブを付与してもいいが、そもそもアプリが入ってないときとかはさすがに付与しないよう注意 [iOS] 該当のアプリがインストールされていない場合、どうする? 投稿完了時にアラート表示する? スクショを撮るなどするとき遅いかもしれないので、インジケータを出す [Android] 該当のアプリがインストールされていない場合、PlayStoreのページに飛ばす。PlayStoreもインストールされてないときは、ブラウザで該当のページに飛ばす 投稿完了時にtoast表示 スクショを撮るなどするとき遅いので、ProgressDialogなど出す cocos2d-xの場合、シェアコールバックでそのままゲーム側の処理を行うべきでない。リソース周りへのアクセス等すると落ちる →フラグを立てるだけなどにしておいて、処理はメインループで行うのがよい。 |
|
iOSと比べると、あまりシステム音というのはない。
参考 使える音は以下 DEFAULT_ALARM_ALERT_URI DEFAULT_NOTIFICATION_URI DEFAULT_RINGTONE_URI |
シャッター音とか、着信音とかを鳴らす方法。
AudioToolBoxライブラリを追加。
プログラムの参考 鳴らせる音の一覧 ちなみにバイブも鳴らせる
|
cocos2d-x。
ActionManager::addAction()でEXC_BAD_ACCESS例外で落ちた。
こんな感じ。 (このスクショは別の件で起きたものだが、原因は同じ。いつもだいたいこういうコールスタックで落ちる) thisがnullptrになっているとかではない。 なんだろう?と思ったら、呼び出し元の
のnodeをaddChildしていなかった。 ので、メインループが1週したときにメモリが破棄された。 破棄されたがnodeポインタは破棄されたところをさし続けていて…というパターン。 簡単な話だが、nullptrになるわけではないので気付きにくいのはなんとかしたい。 |
Androidで画像を切り取る方法。
参考 iOSと比べて面倒。 BitmapRegionDecoderというクラスを使う。 このクラスは、コンストラクタにFileインスタンスを渡して作成する。 decodeRegion()というメソッドにRectを渡すと、その範囲を切り取ったBitmapインスタンスを返す。
単にファイルからビットマップを作りたいときは
となる。 デコードに失敗するとnullが返ることになる。 ちなみに、アセット内の画像ファイルからビットマップを読み込む方法は
となる。 逆に、ビットマップをファイルに書き出すときは
とする。bitmapの中身がfileに書き出される。 |
iOSで、画像(UIImage)を切り取る方法。
参考 そのまま持ってきたもの
実に簡単。 画像の解像度も考慮してくれているので、 元の(scaleしない)イメージサイズを基準にして、切り取りたい範囲のRectを第2引数に渡せば良い。 Rectは左上が原点。 |
ThreadPoolExecutorで実行時にハングアップしたとき
AsynkTask クラスのインスタンスのexecute()のところに不具合があった。
このverifierがnullだったのでエラーになった。 |
何かの処理中に出すようなUI。
iOSでいうとインジケータ。Windowsでいうと砂時計。 ProgressDialog を使う。簡単 表示するとき
消すとき
これだけ。 |