cocos2d-xばかりで、cocos2d-iPhoneについてどこも書いてないので、メモしておきます。
参照元はこちら。
https://www.makegameswith.us/gamernews/359/cocos2d-30-a-brief-transition-guide
- CCLayerがなくなった
- タッチイベントの
- CCMenueがなくなって、CCLayoutを使う
おっと、こちらに日本語で詳しく書かれていました。。。
eggmobile
cocos2d-xばかりで、cocos2d-iPhoneについてどこも書いてないので、メモしておきます。
参照元はこちら。
https://www.makegameswith.us/gamernews/359/cocos2d-30-a-brief-transition-guide
おっと、こちらに日本語で詳しく書かれていました。。。
実機でテストしようとしたら以下の様なエラーが出てしまいました。
Unknown register name ‘q0’ in asm
そんなときの対処法。
__ARM_NEON__
↑このように書いてある箇所を↓のように変更します。
__ARM_NEON_7
mat4.cとneon_matrix_impl.cで1箇所ずつ書かれている箇所があるので、両方修正します。
参考元 : http://stackoverflow.com/questions/21510187/unknown-register-name-q0-in-asm
結論。消して良い。
現在、開発機にMacBookAirの128GBストレージのものを使っているのですが、容量的にカツカツになってきたのでいらないファイルの整理を行いました。
その中で、iPhoneシュミレーターのiOS6.1の一時ファイルと思われるディレクトリ「~/Library/Application Support/iPhone Simulator/6.1/tmp」の中身が1GB以上もファイルを持っており、容量を圧迫していることがわかりました。
ghostlyIcons.というのは見たことのないファイルなのでよくわからなかったのですが、リンク先によれば、tmpフォルダにあるものは基本的には削除して良いものだということです。
また、ghostlyIcons.自体がバグにより生成されたものなのではないかということも書いてありました。
というわけでghostlyIcons.のファイルを全部削除。
そもそもiOS6.1のシュミレーターは最近ほとんど使っていないので、なにか起きてもそれほど影響はないのですけどね。
ちなみにどのファイルやディレクトリが容量が大きいか、というのは、GrandPerspectiveというフリーソフトを使いました。
どのファイルがどれだけ容量を食っているのかを可視化してくれます。
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のテンプレートで作成したプロジェクトの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倍の早さで動きます。
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)ですね。
中心軸を変更すると、それにともなって描画位置も変更されるので、座標の調整が必要です。
おかげさまで、オナ禁カウンターが全世界累計1万ダウンロードを達成いたしました。
ダウンロードをしてくださいました皆様、ありがとうございます。
引き続き、改良を進めてまいります。
これからも「オナ禁カウンター」をよろしくお願い致します。
cocos2dでnode(スプライトなど)を回転させる方法。
CCRotateToだと、指定の角度まで。
CCRotateByだと、指定の角度だけ回転させる。
[objc]
// -45度まで回転させるCCRotateをつくる
CCRotate *rotateToMinus45 = [CCRotateTo actionWithDuration:0.2 angle:-45];
// スプライトを回転させる
[hogeSprite runAction:rotateToMinus45];
[/objc]
iOS7, iOS8用のiPhone5サイズのペーパープロトタイピングのテンプレートを作成しました。(2015/2/2 修正)
【ダウンロードはこちらから↓】
Aタイプ : iPhone_paper_prototype.pdf
Bタイプ : iPhone_paper_prototype_type_b.pdf
【Aタイプ】
画面3つ
【Bタイプ】
画面2つ、記入スペース有り
A4でプリントアウトすると、大体iPhoneと同じぐらいのサイズになります。
ここに書き込んだものをプロトタイプ用のアプリ「POP」で撮影して、画面遷移を見たりしています。
【ダウンロードはこちらから↓】
Aタイプ : iPhone_paper_prototype.pdf
NSArrayにはNSObjectしか入れられないので、CGPointも入りません。
ではどうするかというと、NSObjectにしてしまいます。
こんなかんじ。
[objc]
NSArray *array = @[[NSValue valueWithCGPoint:CGPointMake(700, 270)],[NSValue valueWithCGPoint:CGPointMake(800, 270)]];
[/objc]
値を取り出すときはこう。
[objc]
CGPoint cgPoint = [[array objectAtIndex:0] CGPointValue];
[/objc]