Я пытаюсь переместить камеру с двумя последовательностями действий в мире box2d. Цель состоит в том, чтобы иметь плавные переходы, которые позволяют пользователю видеть все игровое пространство, когда камера перемещается. Первая последовательность содержит действие с короткой задержкой, за которым следует действие по перемещению камеры справа налево. Вторая последовательность содержит такое же действие с короткой задержкой, за которым следует действие по уменьшению масштаба и действие по увеличению масштаба. Уменьшение и увеличение масштаба имеют общую продолжительность, равную действию панорамирования. К сожалению, действия в обеих последовательностях не совпадают. Вместо этого будет выполняться часть одной последовательности, затем будет выполняться часть другой последовательности, а затем, наконец, они будут выполняться синхронно для последней части последовательностей. Вот код, который я использую:
[self runAction:
[CCSequence actions:
[CCDelayTime actionWithDuration:0.5],
[CCMoveBy actionWithDuration: 1.0f
position:ccp(-lastXPositionForCamera, 0)],
[CCCallFunc actionWithTarget:self
selector:@selector(startOver)],
nil]];
// Run a second action at the same time.
// This second action will cause the camera to zoom out and then back in
[self runAction:
[CCSequence actions:
[CCDelayTime actionWithDuration:0.5],
[CCScaleTo actionWithDuration: 0.5f scale:0.5f],
[CCScaleTo actionWithDuration: 0.5f scale:1.0f], nil]];
Происходит следующее: происходит небольшая задержка, за которой следует уменьшение масштаба камеры. После уменьшения масштаба камера начнет панорамирование справа налево, одновременно увеличивая масштаб.
Если я изменю начальное значение CCDelayTime на 0,4, поведение немного изменится. В этом случае камера начинает панорамирование справа налево после небольшой задержки. Затем он перестает панорамировать, пока камера отдаляется. Наконец, камера возобновит панорамирование справа налево, одновременно увеличивая масштаб.
Если в приведенном выше коде все в порядке, то есть ли лучший способ сделать плавный переход, состоящий как из действий масштабирования, так и действий панорамирования?