本当に申し訳ありませんが、ココス2dタッチ検出について質問されています(this答えが含まれています)。しかし、私は仕事をすることができません。私は私自身の質問をするのではなく、私がリンクした答えにコメントしたでしょうが、私はコメントを残すのに十分な担当者がいません。cocos2dの画面*のどこにでもタッチを検出できますか?
私がやりたいことは、ユーザーが画面上の任意の場所をタップするとすぐにアニメーションを停止することです。私は、レイヤファイルとcocosNodeファイルで、両方BOOL
とvoid
、ccTouchesBegan
とtouchesBegan
を試してみた
- (BOOL)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSLog(@"Touches Began");
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView: [touch view]];
location = [[Director sharedDirector] convertCoordinate: location];
CGRect mySurface = (CGRectMake(100, 100, 320, 480));
if(CGRectContainsPoint(mySurface, location)) {
NSLog(@"Event Handled");
return kEventHandled;
[[Director sharedDirector] stopAnimation];
}
return kEventIgnored;
NSLog(@"Event Ignored");
}
、および他の多くのもの:
はここに私のこれまでのコードです。何も起こりません。ログには何も表示されず、アニメーションは愉快なやり方で続けられます。私は間違って何をしていますか?
私は」:あなたのような何かができるよう
別の有用な事は(あなたがタッチを見ている一度)、あなたは簡単に表示し、または@interfaceノード:CocosNode ? –
Evelyn
CGPoint
の値をデバッグすることができますNSStringFromCGPoint
関数でありますどのような伸びを意味するかはわからない。私は@interface GameLayerをやっていますか?層私はあなたのコードが正しいと思う、それはちょうど戻り行の上にstopAnimation行を移動する必要があり、最後のNSLogと同じです。それ以外の場合は、そのコードには決して達しません。それで最初に修正してください。 –
私はそれを行いましたが、それでも何もしませんでした... – Evelyn