2

cocos2dでゲームを開発しようとしています。私は今立ち往生しています。ウィンドウのダブルクリックのように、ダブルタップイベントを検出する方法がわかりません。私は使用しようとします

NSArray * allTouches = [touches allObjects];
int count = [allTouches count];

ccTouchesEnded

しかし、これはダブルタッチが同時に発生した場合に機能するようです。私はそれがWindowsでどのようになっているのかを知りたいです。

誰かが私にいくつかのアイデアを与えることができますか?前もって感謝します。

4

2 に答える 2

3

targetTouchDelegateを使用する場合は、次のことができます。

- (void) ccTouchEnded:(UITouch *)touch withEvent:(UIEvent *)event {
    if(touch.tapCount==1) MPLOG(@"ONE TAP");
    if(touch.tapCount==2) MPLOG(@"TWO TAPS");
    return;
}

ダブルタップが発生すると、2つのタッチが得られます。つまり、ダブルタップが発生すると、「ONETAP」と「TWOTAPS」の両方がログに記録されます。あなたの状態を理解し、あなたのことをするのはあなた次第です。

于 2013-02-14T03:09:52.850 に答える
2

マルチタッチ 2 本指タップまたは Mac や Windows のようなダブルクリックについて話していますか?

MacやWindowsのようにダブルクリックする場合は、ここに解決策があります.

2 つの方法でそれを行うことができます。

  1. UITapGestureRecognizer (ダブルタップを検出するように設定) を使用してください

  2. 時差を利用して手動ダブルタップトラッキングを使用します。

//インターフェースファイルでこれを宣言します

 NSTimeInterval      mLastTapTime;

実装ファイル:

-(id)init
{
    if(self = [super init])
    {
         mLastTapTime = [NSDate timeIntervalSinceReferenceDate];
    }
    return self;
}

//インタッチ方式

NSTimeInterval currentTime = [NSDate timeIntervalSinceReferenceDate];
NSTimeInterval diff = currentTime - mLastTapTime;

if(diff < 0.5 ) //0.5 or less
{
     //double tap
}

mLastTapTime = [NSDate timeIntervalSinceReferenceDate];
于 2013-02-15T17:53:19.140 に答える