Оптимизация управления перетаскиванием в Cocos2D-iphone - PullRequest
0 голосов
/ 30 июля 2011

Я пишу простую игру для iOS с боковой прокруткой, элемент управления такой же, как в Flying Hamster, т. Е. Вы перемещаете палец, чтобы переместить главного героя в любое место на экране. Сейчас игра почти закончена, но у меня есть одна серьезная проблема: все вражеские и фоновые объекты движутся плавно, кроме главного героя :(

На самом деле общий кадр игры всегда выше 40 кадров в секунду, просто главный персонаж движется не так плавно, как если бы он был ниже 10 кадров в секунду. Не могли бы вы взглянуть на мой код ниже и сказать мне, что не так? Любая помощь будет оценена

Вот мой код

    -(void) ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent*)event{

    if (isGameOver == YES || isGamePause == YES) {    
        return;    
    }             
    UITouch *touch = [touches anyObject];    
    CGPoint touchLocation = [touch locationInView: [touch view]]; 
    touchLocation = [[CCDirector sharedDirector] convertToGL: touchLocation];    
    CGPoint diff = ccpSub(touchLocation,beforePosTouch);    
    beforePosTouch = touchLocation;      
    CGPoint positionOfPlayer = player.position;    
    CGPoint newPos = ccpAdd(positionOfPlayer, diff);    
    if (newPos.x <playerWidth + leftLimit) {    
        return;    
    } 

    else if (newPos.x > rightLimit - playerWidth)

    {    
        return;    
    }

    if (newPos.y < playerHeight) {    
        return;    
    }    
    else if (newPos.y > screenSize.height - playerHeight)    
    {    
        return;
    }    
    [player setPosition:newPos];          
    }    
}

-(void) ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{    
    UITouch *touch = [touches anyObject];    
    beforePosTouch = [touch locationInView:[touch view]];    
    beforePosTouch = [[CCDirector sharedDirector] convertToGL:beforePosTouch];    
}

1 Ответ

1 голос
/ 30 июля 2011

Этот код не может быть узким местом вашей программы.Вы должны найти узкое место.Та часть кода, которая действительно важна для производительности игры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...