У меня есть SKSpriteNode
, который является 120px x 120px. Текстура спрайта по умолчанию - это просто круг с радиусом 60 пикселей. Я хотел бы анимировать спрайт с:анимация SKSpriteNode, где каждый кадр в анимации не центрирован
SKAction.animate(with:timePerFrame:resize:restore:)
Вопрос заключается в том, что каждая текстура как часть анимации меньше 120px х 120px в размерах, и, следовательно, если я это сделать и установить точку спрайт якорь
CGPoint(x: 0.5, y: 0.5)
кадров анимации будет сосредоточен в середине спрайта, который не является правильной анимацией я после. Я хотел бы анимацию быть следующей:
Это означает, что я должен добавить все анимации текстур спрайтов атласа быть 120px х 120px, я правильно? если это так, это приведет к тому, что пространство атласа будет опущено пустыми пикселями. Есть ли лучший способ добиться этого? то есть указать центральную точку каждого кадра текстуры в анимации?
Заранее спасибо.
Это не проблема изменения размера. это проблема позиционирования каждого кадра анимации в правильной позиции. Если я установил resize = true, спрайт будет просто изменять размер каждого кадра анимации. Посмотрите на вторую строку на диаграмме выше. это то, как каждый кадр должен располагаться во время анимации. – plawres
Если это не проблема изменения размера, у вас возникла ошибка в создании анимации. Как вы можете ожидать, что простые изображения позиционируются справа или слева, основываясь на ваших вкусах, после чего вы вставили в прозрачную среду? Здесь есть две проблемы: один - это разный размер, вызванный прозрачной областью в верхней/нижней части ваши спрайты (решены с помощью resize = true), а другой - это то, что вы должны перемещать свои части на нужную вам сторону, иначе вы должны переделать анимацию, поставив простой пиксель ссылки на transp. чтобы сохранить реальную ширину (или изменить цвет фона) –
Проблема не изменяется. Вопрос в том, есть ли способ разместить каждый кадр текстуры анимации отдельно или, например, установить разные опорные точки для каждого кадра текстуры анимации? например опорная точка frame01 (0,0, 0,5), вторая опорная точка кадра (0,25, 0,5), опорная точка третьего кадра (0,5,0,5) ... и т. д. Потому что, если у меня есть каждая текстура с пустыми пикселями в атласе, то это пустая трата памяти для хранения пустых пикселей. – plawres