Я создаю игру с комплектом спрайтов и имею спрайт, перемещающийся слева направо с бесконечным действием.Бесконечное действие с SKActions Цель C
SKAction *moveRight = [SKAction moveByX:3.0 y:0 duration:3.5];
SKAction *moveLeft = [SKAction moveByX:-3.0 y:0 duration:3.5];
SKAction *reversedMoveRight = [moveRight reversedAction];
SKAction *reversedMoveLeft = [moveLeft reversedAction];
SKAction *completion = [SKAction runBlock:^{
SKAction *sequence = [SKAction sequence:@[moveRight, moveLeft, reversedMoveRight,reversedMoveLeft]];
SKAction *endlessAction = [SKAction repeatActionForever:sequence];
[snake runAction:endlessAction];
}];
[snake runAction:completion withKey:@"KeySnake"];
Это работает, но через короткий промежуток времени моя игра замедляется. Использование процессора и памяти продолжает расти в навигаторе отладки в Xcode. Я думаю, что бесконечное действие вызывает проблему, но я не знаю другого способа постоянно ее перемещать, как я хочу.
Это не должно стать проблемой. Возможно, вы добавляете бесконечное действие более одного раза к змее? –
Я использую его в методе обновления. есть ли способ использовать этот код без использования метода обновления? – Hunter23
Действия и метод обновления не смешиваются. Вы либо делаете материал вручную в методе обновления, либо используете действия вне метода обновления, чтобы сделать это за вас. – Fogmeister