ghostlyIcons.は消して良いのか

GrandPerspective Mac

 

結論。消して良い。

以下を参考にしました。
http://stackoverflow.com/questions/16938659/can-i-safely-delete-the-contents-of-the-library-application-support-iphone-sim

現在、開発機にMacBookAirの128GBストレージのものを使っているのですが、容量的にカツカツになってきたのでいらないファイルの整理を行いました。

その中で、iPhoneシュミレーターのiOS6.1の一時ファイルと思われるディレクトリ「~/Library/Application Support/iPhone Simulator/6.1/tmp」の中身が1GB以上もファイルを持っており、容量を圧迫していることがわかりました。

ghostlyIcons.というのは見たことのないファイルなのでよくわからなかったのですが、リンク先によれば、tmpフォルダにあるものは基本的には削除して良いものだということです。

また、ghostlyIcons.自体がバグにより生成されたものなのではないかということも書いてありました。

というわけでghostlyIcons.のファイルを全部削除。
そもそもiOS6.1のシュミレーターは最近ほとんど使っていないので、なにか起きてもそれほど影響はないのですけどね。

GrandPerspective Macちなみにどのファイルやディレクトリが容量が大きいか、というのは、GrandPerspectiveというフリーソフトを使いました。

どのファイルがどれだけ容量を食っているのかを可視化してくれます。

Xcode5.1にしたら、cocos2dでエラーが出た

Xcode5.1にアップデートしたら、cocos2dで以下の様なエラーが出ました。

Redefinition of ‘__ccContentScaleFactor’ with a different type: ‘CGFloat’ (aka ‘double’) vs ‘float’

というわけでググったらこちらのページに解決法が載っていました。

http://www.cocos2d-iphone.org/forums/topic/redefinition-error-__cccontentscalefactor/

CCDirectorIOS.hの109行目です。

[objc]
// optimization. Should only be used to read it. Never to write it.
//extern CGFloat __ccContentScaleFactor; // CGFloatをfloatに修正
extern float __ccContentScaleFactor;
[/objc]

↑こんなかんじ。

同様に実装の方も修正。
CCDirectorIOS.mの66行目です。

[objc]
// CGFloat __ccContentScaleFactor = 1; // CGFloatをfloatに修正
float __ccContentScaleFactor = 1;
[/objc]

とりあえず動くようになりました。

デバッグ用にスロー再生する cocos2d

デバッグ用にスロー再生したいとき。

cocos2dのテンプレートで作成したプロジェクトのAppDelegate.mのapplication:didFinishLaunchingWithOptions:の最後の方に以下の一文を入れます。(return YES;の前。)

[objc]
– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//【中略】

// 時間を5倍にする
[director_ scheduler].timeScale = 0.2;

return YES;
}
[/objc]

これで通常の5分の1のスロースピードで動きます。
timeScaleを2とかにすると、2倍の早さで動きます。

スプライトを、回転軸を指定して回転させる cocs2d

Cocos2d。先日の「Nodeを回転させる」の発展版。

デフォルトだとスプライトは中心に回転軸があるのですが、
これをずらしたい時の方法。

[objc]
// -45度まで回転させるCCRotateをつくる
CCRotate *rotateToMinus45 = [CCRotateTo actionWithDuration:0.2 angle:-45];

// スプライトの回転軸(中心点)を変更。ccp(0,0)だと左下、ccp(1,1)だと右上
hogeSprite.anchorPoint = ccp(0, 0);

// スプライトを回転させる
[hogeSprite runAction:rotateToMinus45];
[/objc]

中心軸(anchorPoint)を変更すると、回転軸も変わります。
中心軸は0~1で指定します。デフォルトは中心なのでccp(0.5,0.5)ですね。
中心軸を変更すると、それにともなって描画位置も変更されるので、座標の調整が必要です。