cocos2dで詰まったところ、その2。
cocos2dでマルチタッチする場合、適当にぐぐればやり方が出てきますが、99.5あたりからはAppDelegate内で
[cc lang=”objc”]
[glView setMultipleTouchEnabled:YES];
[/cc]
などとしてビューに設定してやらんと駄目らしいです。
あと、シングルタッチの場合、次のようにして登録してやる必要があるんですが、
[cc lang=”objc”]
– (void)onEnter{
[[CCTouchDispatcher sharedDispatcher] addTargetedDelegate:self priority:0 swallowsTouches:YES];
[super onEnter];
}
[/cc]
こうやって、ちゃんと解除の方も忘れずにしておかないと困ります。
[cc lang=”objc”]
– (void)onExit{
[[CCTouchDispatcher sharedDispatcher] removeDelegate:self];
[super onExit];
}
[/cc]
具体的にはメニュー画面でシングルタッチを取得してシーンを切り替えるようにしてたんですが、次のシーンでタッチ処理をしようとすると、前のシーンのハンドラがそのまま呼び出されてなんども新しいシーンが作られる、などという状態に陥ったりしてました。
開発はtouch2Gでやってるんですが、なんとなくiPhone3GにいれてみたらFPSが40程度しかでなくて、そこまでスペック差はないだろうと思っていろいろ調べてたら、こちらにあるようにGameConfig.h内で
[cc lang=”objc”]
#define GAME_AUTOROTATION kGameAutorotationCCDirector
[/cc]
とかしてやらんと駄目らしいです。
そんな感じで黙々と開発中。