Cocos2D 2.x - Multi-Touch отстает, но не падает FPS

В моей новой игре мне приходится работать с мультитач с помощью cocos2d, чтобы перемещать двух игроков одновременно. Однако иногда кажется, что прикосновения затягиваются! Когда я играю, все действительно гладко, но тогда я получаю отставание из ниоткуда с движением игроков, но другие объекты движутся плавно! Поэтому я решил запустить профилирование, и все было хорошо, моя игра всегда работала со скоростью 56-60 кадров в секунду, даже с задержкой. Так что я думаю, что это не проблема памяти и не FPS, а проблема сенсорной обработки... Вот мой код:

- (void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    for (UITouch *touch in touches) {
        tapCount ++;

        CGPoint location = [touch locationInView:[touch view]];
        location = [[CCDirector sharedDirector] convertToGL:location];

        //Do my stuff here...

        NSLog(@"Tap Count:%d", tapCount);
    }
}

- (void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
    if (tapCount == 0) return;

    for (UITouch *touch in touches) {
        CGPoint location = [touch locationInView:[touch view]];
        location = [[CCDirector sharedDirector] convertToGL:location];
        CGPoint prevLocation = [[CCDirector sharedDirector] convertToGL:[touch previousLocationInView:[touch view]]];

        float diff = (location.y - prevLocation.y) / ipadScale * SENSIVITY;

        //MOVE MY PLAYERS HERE
    }
}

- (void) ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event{
    [self ccTouchesEnded:touches withEvent:event];
}

- (void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    for (UITouch *touch in touches) {
        tapCount--;
        NSLog(@"Tap Count:%d", tapCount);
    }

    if (tapCount <= 0) {
        tapCount = 0;
        [self pauseGame];
    }
}

Я также регистрирую свою игровую сцену как Стандартный Делегат, это проблема? Я думаю, не потому, что это требуется для мультитач! Я верю, что в этом коде нет ничего плохого, я прав? И когда я говорю "запаздывающе", это похоже на работу с частотой 25 кадров в секунду, это не имеет большого значения, но немного раздражает!

Пожалуйста, помогите мне! Спасибо!

0 ответов

Другие вопросы по тегам