rabbit-dev

現役スマフォプログラマーが適当にプログラム関係の記事を放り込むブログ

cocos2dx

cocoapodsで導入したnendのライブラリ(libNendAd.a)リンク時にエラーになる件の修正

XCode7を使ってcocos2dx+cocoapods(Nend + Admob)で作ったアプリをビルドするとリンク時に以下のエラーがでる。 libNendAd.a(NADInterstitialWebView.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCOD…

Cocos2dx onEnterまでにpauseしてもrunActionで実行したアニメーションは止まらない!

ちょっとハマったのでメモしておきます。 cocos2dxでLayerのinitとかでpauseを使ってアニメーション止めようとしても画面上では止まりません。 これはNodeのonEnter時にresumeを実行しているためだと思います。 initでpauseしてもその後のonEnterで実行され…

Cocos2dxパフォーマンス ClippingNodeの描画が重い、、、

スライムの大逆襲というアプリが「重い」と言われているので調査してみたところ ClippingNodeの処理が重いことがわかりました。。。 ClippingNodeではなく通常のSpriteでの描画に変えたところ 71%→41%になった。 組み込み方が悪いのだろうか?

Cocos2dx Tiledで作成したmapファイルの回転値とIDが読み込めない。

Tiled Map Editor(http://www.mapeditor.org/)でオブジェクトの回転を設定しても以下のコードで読み込めない。 コード 上記コードを書いたところid/rotationが読み込めません。 TMXObjectGroup* objectGroup = map->getObjectGroup(groupname);ValueVector…

効果音、バックグランドミュージックの音量調整

効果音とバックグランドミュージックの音量は以下で調整が可能 // 音量設定 SimpleAudioEngine::getInstance()->setEffectsVolume(1.0f); SimpleAudioEngine::getInstance()->setBackgroundMusicVolume(1.0f); // 音量取得 float effectVolume = SimpleAudio…

永遠に回転しつずけるアニメーション

表題の通り回転を続けるアニメーションの作り方 コード RotateBy * rotate = RotateBy::create(0.5f, 360);RepeatForever * repeat = RepeatForever::create(rotate);sprite->runAction(repeat); このコードで剣が回転を続けるアニメーションを実現できる。

Spriteを逆にする。

画像を単純に逆向きにしたい場合の方法 これを これにする方法 Spriteの以下のメソッドを呼べばOK コード // 逆にする mSpriteCharactor->setFlippedX(true); // 元に戻す mSpriteCharactor->setFlippedX(false);

ScrollViewのスクロールを止めてみた。

ということで表題の通りScrollViewのスクロールを止めてみた。 メニュー表示中にスクロールさせたくない時とかに使えるはず。 コード // スクロールを無効にする。 scrollView->setTouchEnabled(false); // スクロールを有効にする。 scrollView->setTouchEn…

ScrollViewを使ってみた。

アプリ開発時にスクロールさせたい画面がありそこにScrollViewを採用してみた。 コーディングとかをまとめて書いておく。 コード ScrollView * scroll = ScrollView::create(size); scroll->setContainer(addLayer);scroll->setDirection(ScrollView::Direct…

数字3桁ごとに「,」を入れる方法

ゲームでお金を表示するときに3桁ごとに「,」を入れて表示することが多いのですが、 その実装方法を載せておきます。 コード const char * getNumComma(double num){ String * str = String::create(""); do{ int add = (int)fmod(num,1000); num = num / 1…

setHorizontalAlignmentがなぜか聞かない。回避方法

setHorizontalAlignmentを使ってもアラインされない。。。 というときはsetAnchorPointを使う。原因はわからないけどこれで解決できます。 コード Label * labelTitle = Label::createWithTTF(ttfConfig, title);labelTitle->setColor(Color3B::WHITE);// la…

ログ制御方法(お手軽にログを出さなくする方法)

ログをデバッグ時は出したいけどリリース時は出したくない。でも、いちいち消すのが面倒。。。その場合の対処法です。 コード common.h #define COCOS2D_DEBUG 0 test.cpp #include "common.h" int getVal(){ int ret = getPower(); cur = cur + 1; CCLOG("P…

iPhone iOSリーダーボードが閉じないときの対応

リーダーボードの表示は出来ますが、右上にある「完了」を押しても閉じないときの対策をのせておきます。 コード RootViewController.h #import <UIKit/UIKit.h>#import <GameKit/GameKit.h>@interface RootViewController : UIViewController<GKLeaderboardViewControllerDelegate, GKAchievementViewControllerDelegate> {}- (BOOL) prefersStatusBarHidden; RootViewCont</gkleaderboardviewcontrollerdelegate,></gamekit/gamekit.h></uikit/uikit.h>…

Vec2同士の距離を調べる

たまにVec2同士の距離を調べたくなることがあります。そのときはVec2のメソッドのdistanceを使うことで取得できます。 コード Vec2 pos1 = Vec2(1,1); Vec2 pos2 = Vec2(2,2); float distance = pos1.distance( pos2 ); CCLOG("distance %f",distance); 結果…

CallFuncNにパラメータをつける→ラムダ式を使おう

記事が間違えていたため修正しました。 CallFuncNにパラメータをつけたい場合、以前まではCallFuncNDが使えていたようですが、このクラスは非推奨みたいです。現在何が推奨されているか分かりませんが、ラムダ式を使うことでパラメータを渡すことが出来たの…

Cocos2dxでSEをだんだん高音にする方法

ゲームで連続ヒットしたときにseをどんどん高音にしていきたいときがあります。調べてみても方法が乗っていなかったので、メモ代わりにのせておきます。 コード SimpleAudioEngine::sharedEngine()->playEffect("se1.mp3", false , mSeBombPitch, 0.0f, 1.0f…

cocos2dx3.2でAdmobを実装する方法

Cocos2dx 3.2でAdmobを実装するとエラーが発生してAdmobを表示できません。 解決策は簡単。Other Link Flagに「-Objc」を追加するだけ! これでいけるはずです。

GoogleApiClient.ApiOptionsでエラーが発生する件の解決方法(GooglePlayServices)

https://developers.google.com/games/services/downloads/ 上記のページを参考にAndroidのゲームアプリ作成中GoogleApiClient.ApiOptionsのエラーが発生しました。 どこにも解決方法書いてないので解決方法をメモしておきます。 解決方法 ・上の画像のGoogl…

アニメーション完了後のコールバック設定方法

Cocos2dxでrunActionを利用してアニメーションをする場合、アニメーション完了後にコールバックを設定したい場合があります。(例えば、アニメーション完了後に削除するとか) その場合、どのようにしたら設定できるかぐぐってみたところscheduleでアニメー…

cocos2dx3.0Rc0のインストール方法

最近cocos2dx-3.0rcがリリースされましたね。 インストール方法が変わっていたのでまとめます。 Windowsはプロジェクト生成時に何故かエラーが発生する、、、 準備 ・XCode ・AndroidSDK ・AndroidNDK ・ANT インストール AndroidSDK/NDK、ANTをダウンロード…

cocos2dx(3.0beta2)で背景色を設定する。

Cocos2dx 2.xでは以下のコードで背景色を設定出来ましたが CCLayerColor::initWithColor( ccs4( 255, 255, 255, 255 ) ); 上記コードはCocos2dx 3.xでは利用できません。Cocos2dx 3.xでは以下のようなコードにします。 GameScene.h … class GameMainScene : …

cocos2dx(cocos2d-x-2.2.2)の導入について

cocos2d-x-2.2.2 でAndroid/iPhoneの両方でビルドをするための手順です。 準備 Cocos2dx 2.2.2 http://www.cocos2d-x.org/download X-Code ( iPhoneアプリを作る場合 ) MacのAppStoreよりインストール ADT ( Androidアプリを作る場合 ) http://developer.and…