それぞれが画像にリンクされた 2 つの ccMenuItems を持つ cocos2d を使用してプログラムを作成しています。この場合、1 つは左矢印、もう 1 つは右矢印です。ビューの中央には、押された矢印に応じて回転する画像もあります。
左または右の 2 つのメニュー項目のいずれかに指を置くと、指がボタン上にある限り、中央の画像が回転します。それが私が迷子になったところです。次のコードを使用してみました:
- (BOOL)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint p = [touch locationInView:[touch view]];
if (CGRectContainsPoint(leftArrow, p) || CGRectContainsPoint(rightArrow, p)) {
return YES;
}
return NO;
}
- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event {
CGPoint p = [touch locationInView:[touch view]];
if (CGRectContainsPoint(leftArrow, p)) {
[gun runAction:[CCRepeatForever actionWithAction:[CCRotateTo actionWithDuration:0.2 angle:180]]];
}
if (CGRectContainsPoint(rightArrow, p)) {
[gun runAction:[CCRepeatForever actionWithAction:[CCRotateTo actionWithDuration:0.2 angle:0]]];
}
}
このコードを使用すると、2 つのメニュー項目のいずれかを押しても、ccTouchBegan メソッドは呼び出されません。このメソッドは、他の場所に触れたときにのみ呼び出されます。
ccMenuItem を押したままにすると、連続したアクションをどのように処理するのですか?
ご協力ありがとうございました!