Я пишу простую игру для 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];
}