paranitips

Never stop learning! がモットーのゆるふわエンジニアブログ

2013-01-01から1年間の記事一覧

cocos2d-xで[node isKindOfClass:[CCSprite class]]みたいにクラスを判定する方法

例えば、HogeLayerの子供の中でCCSpriteにだけ処理をしたい場合は以下のように実装します。 CCArray* children = HogeLayer->getChildren(); for (int i=0; i<children->count(); i++) { if (dynamic_cast<CCSprite*>(children->objectAtIndex(i))) { // 処理 } } ただし、高価な方</ccsprite*></children->…

cocosbuilderのアニメーション終了時に何か処理を実行したい

cocosbuilderでタイムラインを作成してアニメーションさせたとき、その終了時に処理を実行したい場合はCCBAnimationManagerDelegateを使います。 // GameLayer.h class GameLayer : public CCLayer , public CCBAnimationManagerDelegate // CCBAnimationMan…

他のクラスからAppDelegateにアクセスする

シーン間で共通化しているもの、例えばゲーム画面にアクセスしたい場合、 // AppDelegate.h #include "cocos2d.h" USING_NS_CC; class AppDelegate : private cocos2d::CCApplication { CCNode *gameNode; // ゲーム画面 void loadGameNode(); public: AppDe…

FacebookSDKのエラー「Code=2 "The operation couldn’t be completed.」を解消する

XcodeでFacebookアプリ開発時に、特定の端末でFacebookログインでエラーが発生しました。 Domain=com.facebook.sdk Code=2 "The operation couldn’t be completed. (com.facebook.sdk error 2.)" UserInfo=0x17e904d0 { com.facebook.sdk:ErrorLoginFailedRe…

Game CenterのLeaderboardで小数(float型)のスコアを送信する

Game CenterのLeaderboardで小数を使ったスコア(例:12.3m, 123.45ptなど)を使用している場合、スコアの送信方法に少し戸惑ったのでメモします。 まず、iTunes ConnectにてLeaderboardの設定を確認します。 「Score Format Type」が Fixed Point - To 1 De…

Game Centerの「The requested operation has been cancelled or disabled by the user.」を解決する

Game Centerの挙動チェックをしていると突然、 「The requested operation has been cancelled or disabled by the user.」 のエラーが出てGame Center画面が立ち上がらなくなりました。 これはGame Center画面を3-5回キャンセルすると起こる事象らしく、サ…

「'string' file not found 」のエラーを解消する

Cocos2d-xで開発していると突然「'string' file not found」のエラーでビルドが失敗しました。 エラーを出しているのはCCDataVisitor.hというcocos2d-x内のファイル。原因がわからなすぎる…。 Objective-Cのコードと共存させるところで失敗しているとこのよ…

Unused variable の警告を消す

サードパーティのライブラリやフレームワークを使っていると、大量に出てくる「Unused variable」の警告ですが、開発中はとても邪魔なので見えないように設定を変更します。 Build Settings -> Apple LLVM 5.0 - Warnings - All Languages にある「Unused Va…

ユーザエージェントからiOSのバージョンを取得する

iOSのバージョンによってサーバ側で処理を分けたい場合、ユーザエージェントからバージョンを検出して対応します。 def check_ios_version # ユーザエージェントを取得 ua = request.env['HTTP_USER_AGENT'] ua =~ /iPhone OS (\d+)[\.|_]+(\d+)/ if $1 && $…

UITableViewCell上のUIButton(Custom)が反応しない

XIBで独自クラスのセルを作成し、そのセル上にUIButtonを設置している場合、iOS7ではタップに反応しません。 対処法としてはセルに対して以下のコードを追加すればOKです。 [customCell.contentView setUserInteractionEnabled: NO]; XIBでセルを作っている…

「Couldn't load cocos2dx.xcodeproj because it is already opened from another project or workspace」 の対処

Cocos2d-xでiOSアプリを開発している際、以下のようなエラーに遭遇することが多々あります。 Couldn't load cocos2dx.xcodeproj because it is already opened from another project or workspace エラー文の通り、すでにcocos2dxプロジェクトを開いている場…

画像サイズ対応/解像度対応でつまづいた

CocosBuilderでマルチレゾリューション対応が簡単にできるということだったので、参考書のとおりにレイアウトを構成し、画像を書き出してcocos2d-xプロジェクトのResourcesへ追加。 するとぜんぜんうまくいかなくて苦戦したのでメモしておきます。 CocosBuil…

「`require': cannot load such file -- readline (LoadError)」のエラーを解消する

動作環境 $ cat /etc/`ls /etc -F | grep "release$\|version$"` CentOS release 6.4 (Final) $ rails -v Rails 4.0.0 $ ruby -v ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-linux] 事象 rails consoleコマンドを打つと以下のようなエラーが出まし…

EC2でRuby on Rails+Passenger+Apache環境を構築する

EC2にてRailsアプリケーションを作成し、ページを表示させるまでをまとめます。 EC2のインスタンス作成についてはこちらが参考になります。 Rubyのインストール確認 # ruby -v ruby 1.8.7 (2012-10-12 patchlevel 371) [x86_64-linux] rubyはデフォルトで入…

Xcodeがオーガナイザーでクラッシュする

XcodeのオーガナイザーにてProvisioning Profilesを更新すると必ずクラッシュする事象に出くわしました。 Xcodeを再起動しても、PCを再起動しても解決されません。 エラー内容に以下の文言が含まれていました。 UNCAUGHT EXCEPTION (NSInvalidArgumentExcept…

iAdとAdMobを切り替えるAdMobメディエーションを実装する

AdMobメディエーションを使うことで複数のアドネットワークを切り替えることができます。 AdMobの設定は各自で行なってください。 今回は一般的なiAdとAdMobの2種類の広告を扱います。 なお、ARC対応の場合はOther Linker Flagsに-ObjCを追加する必要があり…

Interface Builderで16進の色コード(Hex Color)を使えるようにするプラグインを導入する

Xcodeにて、Interface Builderでも色コードを指定できるとものすごく効率が上がります。 下図のような感じです。 そのための便利なプラグイン「Hex Color Picker」があったので早速導入します。 こちらからプラグインをダウンロードします。 Finder -> 移動…

Rubyでメソッド一覧を確認するmethodsメソッドが便利

例えば、destroy!メソッドってあったっけ?みたいな場合など、 rubyでメソッド一覧を調べたいときにはmethodsメソッドを使います。 sortやgrepと組み合わせるとなお良しです。 使用出来るメソッド一覧を表示する @bbs = Bbs.new pp @bbs.methods -----------…

rubyの「undefined method `+@’ for ” “:String」を解決する

rubyでは+の位置によって挙動が変わるので注意が必要です。 str = "hoge" + "fuga" を改行する場合、 str = "hoge" + "fuga" # エラー:undefined method `+@’ for ” “:String これではエラ−となってしまいます。 +を文末に移動させて、 str = "hoge" + "fug…

NSURLRequestでSSL証明書を無視する

NSURLRequestを拡張することでSSLの証明書を無視します。 #import <Foundation/Foundation.h> @interface NSURLRequest (IgnoreSSL) + (BOOL)allowsAnyHTTPSCertificateForHost:(NSString*)host; @end #import "NSURLRequest+IgnoreSSL.h" @implementation NSURLRequest (IgnoreSSL) +</foundation/foundation.h>…

UITextViewに文字数制限/文字数カウント機能を実装する

テキストビューに以下の機能を実装します。 所定文字数までしか入力させない文字数制限機能 現在テキストビューに入力されている文字数のカウント textlengthLabelに現在の文字数を表示させます。 #define MAX_LENGTH 200 // 文字数制限を200に設定 - (BOOL)…

NSTimerをscrollイベント中にも機能させる

NSTimerをscrollイベント中にも動かしたい場合、 [NSTimer timerWithTimeInterval:0.5 target:self selector:@selector(hoge) userInfo:nil repeats:YES]; 上記のままだとscrollイベント時に止まってしまうので、以下のようにすると良いです。 NSTimer *time…

サーバのグローバルIPアドレスを確認する

サーバのグローバルIPアドレスを調べるには下記のようにすると良いです。 % wget -q -O - ipcheck.mycurse.net ちなみに % /sbin/ifconfig でわかるのは現在所属しているネットワークのローカルIPアドレスです。 参考 LinuxサーバからグローバルIPを確認方法…

EC2でnode+express+mongoDB+mongooseの環境を構築する

Amazon EC2にnode+express+mongoDBの環境を構築します。 EC2の構築に関しては以下のSlideがとてもわかりやすいです。 はじめてのアマゾンクラウド②[仮想サーバ(Amazon EC2)を立ち上げる] from 玉川憲 (Ken Tamagawa) - Amazon Web Services nodeの環境構築 E…

NSJSONSerializationでJSONをパースする

iOS5から追加されたNSJSONSerializationを使ってみました。 今回はDribbbleのAPIで試してみます。 // Dribbbleから人気ショット一覧を取得するURL NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://api.dribbble.com/sh…