2013年2月22日金曜日

【cocos2d】プロパティ"position"と"boundingBox.origin"では取得できる値が違う

cocos2dでスプライトの座標を取得する際に、たまに意図しない値が取得されているのに気付きました。調べてみると、どうやら座標を取得するプロパティ"position"と"boundingBox.origin"とでは取得できる値が違う事が分かりました。

2013年2月20日水曜日

2013年2月18日月曜日

エラー「Instance method メソッド名' not found (return type defaults to 'id')」

ビルド時に「Instance method メソッド名' not found (return type defaults to 'id')」というエラーが出たのでそのメモ。

2013年2月16日土曜日

【cocos2d】ビルドエラー「Lexical or Preprocessor ‘cassert’ file not found」が出たときの対処方法

cocos2dでBox2Dを使用していて「Lexical or Preprocessor‘cassert’file not found」というビルドエラーが出たのでその対処方法をメモで。

配列同士を連結する

NSArray, NSMutableArray同士の連結方法についてメモ。

ファイル削除時に出るCpResourceエラーについて

Xcode上からではなく、プロジェクトが入っているフォルダからファイルを削除してビルドすると、

「CpResource 削除したファイルのパス cd "/Users/・・・" setenv ...」

というエラーが出ました。

解決方法

このエラーの対処は以下の流れで行いました。

  1. プロジェクトを選択。
  2. メニュー"TARGETS"を選択。
  3. "Build Phases"を選択。
  4. "Copy Bundle Resources"項目へ。
  5. その中から赤くなっているファイルを削除。

Xcodeのリソース上にはまだファイルデータの履歴(?)が残っていたのですが、参照しているフォルダ内にはそのファイルデータがないために起こったエラーのようです。

以上です。

参考記事

XCode Build – CopyPNGFile Error and No Such File or Directory - Communicate Through Technology

2013年2月14日木曜日

画像のダイエット!Yahoo!のWebサービス「Smush.it」で画像の最適化



画像容量を減らしてくれるYahoo!のサービスがあります。アプリ内で使用する画像の最適化などに良さそうなので試してみました。

Smush.it - Yahoo!

この「Smush.it」はこちらの記事によれば、"画像内に含まれるメタデータなどを削除し、画像を軽量化・最適化してくれるサービス"とのことです。

試してみる

今回は 縦横1000*1000、容量約4.4KBの全体ブルーで塗りつぶした画像を使用しました。

結果

こんな感じで結果が表示されました。



あまり変わっていないようですね(笑) 全体がただのブルーで塗りつぶしただけの画像なので余分なデータはあまりないのかもしれません。

ですが、実際には容量の軽量化にはなっているので試してみる価値はありそうです。

参考記事

サイト高速化のために「Smush.it」で余計なデータを削除して画像を軽量化・最適化 - 4th Life - Coevolution of WEB -

【cocos2d】背景色を変える

cocos2dで背景の色を変えたいと思い調べました。

2013年2月12日火曜日

【cocos2d】cocos2dでスワイプ処理

cocos2dでスワイプ処理を実装する際に役に立つエントリーがありましたので書きます。

cocos2dでスワイプ処理を実装し、チューニングする - jarinosuke blog

スワイプのジェスチャーはUIGestureRecognizerクラスを使用し、タッチイベント(ccTouchMoved内)でその判定を自作のパラメータを使って行っています。

以下はスワイプ処理実装の際に使用していたC言語関数になります。念のため仕様をメモります。

sqrt(x) : xの平方根を返す
- 参考 : 初心者のためのポイント学習C言語

pow(x, y) : x, yのベき乗を返す
- 参考 : BohYoh.com【C言語講座】標準ライブラリ

fabsf(x) : x の絶対値を返す
- 参考 : C言語関数辞典

【cocos2d】ローカル座標、ワールド座標の変換

cocos2dの座標の変換に関してメモります。

2013年2月4日月曜日

無料・商用利用可能な音声ファイルをダウンロードできる「Octave」

無料でしかも商用利用が可能な音声ファイルをダウンロードできる「Octave」がかなりすごいです。

以下のリンクからダウンロードできます。

Octave: A free library of UI sounds.

試してみました

ダウンロード・解凍すると以下のようにXcode用のプロジェクトが入っています。



実行すると以下のように収録されている音声ファイルを聞くことができます。



無料で商用利用可能、嬉しいです。

参考記事

無料で商用利用も可能な短いサウンド48種類がダウンロードできる「Octave」- GIGAZINE

[CCDirector sharedDirector].runningScene で取得したシーンの変数にアクセスするにはCCSceneを継承していないとダメらしい

しっかりと調べた訳ではないのですが、気になったのでメモります。

【cocos2d】CCCallFuncNDのエラー

CCCallFuncNDクラスのactionWithTarget:selector:data:メソッドを使用する際のエラーについてです。

今回のエラーの詳細は以下になります。

testFunc:(NSString*)str というメソッドを作り呼ぼうとしたが、受け取る引数が、"<クラス名 = アドレス | tag="-1">"というような感じになってしまい上手くいかなかった。

その解決方法をメモで。

【cocos2d】タッチイベントが効かないときの対処方法

主な原因は、以下のようにタッチイベントを有効にしていないか
self.isTouchEnabled = YES;
registerWithTouchDispatcherメソッドをオーバーライドしていないことが原因のようです。
// 以下をソースコードに追加
-(void)registerWithTouchDispatcher
{
    [[[CCDirector sharedDirector] touchDispatcher]addTargetedDelegate:self
                                                                                                     priority:0
                                                                                     swallowsTouches:YES];
}

CCTouchDispatcherクラスの変更点については前の記事で触れたのでよろしければそちらも参照してみてください。

参考記事

[Cocos2d] タッチイベントを検知する - HAPPY*TRAP

2013年2月2日土曜日

【cocos2d】CCSpriteSheetはCCSpriteBatchNodeに置き換わっている

CCSpriteSheetはCCSpriteBatchNodeに置き換わっているようです。

Cocos2d解説(5) CCSpriteBatchNode - Yokemuraの開発ブログ(Yokemura's Development Blog)

メモとして書きました。

Box2Dについて

cocos2dに含まれている物理エンジンBox2Dについてです。Box2D自体はじめて触るものですので、雰囲気など掴むために色々と調べながら書きました。

2013年2月1日金曜日