2015年7月15日水曜日

[Cocos2d-x]アクション終了時に処理を実行する

Cocos2d-x v3.6

auto mySprite = Sprite::create();
auto action = FadeOut::create(0.1);
mySprite->runAction(action);
// ラムダ式でコールバックを設定する
auto callback = CallFuncN::create([](Ref *sender){
  //コールバック処理をここに書く
  Node *node = (Node *)sender;
  node->removeFromParent();
});
// アクションとコールバックをシーケンスに設定する
auto seq = Sequence::create(action, callback, NULL);
mySprite->runAction(seq);

2015年7月14日火曜日

[Admob]テストIDについて

Admobは開発時ににはテスト広告が使用が推奨されている、
このテスト広告を使用するためにはtestDvicesの配列にD端末IDを追加すれば良い。
DeviecIDはAdmob固有のものでiPhone UIDなどとは別物である。
端末がiOSシュミレーター、Androidエミュレターの場合はGAD_SIMULATOR_IDを使用する。

端末IDをを知るには[GADRequest request]時に出力されるログに表示される
To get test ads on this device, call: request.testDevices = @[
@”ここに端末IDが表示される” ];

このためテスト端末を利用するときははじめの1回は本番環境として起動する必要がある。

ちょっと考えればあたりまえだが、
https://developers.google.com/mobile-ads-sdk/docs/admob/ios/targeting?hl=ja#test_ads

開発段階では、表示回数が不正にカウントされないよう、テスト広告を使用することをおすすめします。

と記載されていたので、はじめの1回が不正になるのじゃないかと考えていたため、
本番環境での起動に躊躇してしまった。
AdmobさんはGoogleIDを結構警告(とBAN)すると聞いたので

2015年7月13日月曜日

[Cocos2d-x]Actionを連続させて行う

spriteを順番にactionさせる

auto downAction = MoveBy::create(0.5, Point(0, 30));
auto upActiopn = MoveBy::create(0.5, Point(0, -30));
//Spawnは2つのアクションを制御することができる、3つ以上はSequeneにすること
auto upDownAction = Spawn::create(downAction, upActiopn, NULL);
sprite->runAction(upDownAction);

spriteを順番にactionさせ、ループさせる

auto downAction = MoveBy::create(0.5, Point(0, 30));
auto upActiopn = MoveBy::create(0.5, Point(0, -30));
//Sequenceは複数のアクションを順番に行うことができる
auto sequence = Sequence::create(downAction, upActiopn, NULL);
auto repeatForever = RepeatForever::create(sequence);
sprite->runAction(repeatForever);