XNA Sprite Scaling: поиск равномерного расширения от центра спрайта - PullRequest
2 голосов
/ 08 мая 2011

Когда я масштабирую свой спрайт, он растягивается в нижнем правом углу, когда желаемый эффект для него - оставаться на месте и «расти» в концентрических кругах.

Я возился с источником, но, похоже, он влияет только на вращение. Я также думал об использовании ограничивающего прямоугольника для его масштабирования, но я ищу лучшую практику, чтобы не попасть в вредную привычку прямо из ворот.

Вот код, по которому я звоню. Единственный аргумент, который изменяется, это Scale:

SpriteBatch.Draw(Texture,            // Texture
                          Position,           // Position
                          null,               // Source Rectangle
                          Color,              // Color
                          0f,                 // Rotation
                          Vector2.Zero,       // Origin
                          Scale,              // Current Scale
                          SpriteEffects.None, // Mirroring options
                          Depth);             // z-depth

А вот скриншот с оранжевыми кольцами, которые расширяются, не оставаясь «сложенными»: Expanding Rings

Спасибо за ваше время.

Вот подробности исправленной версии, если она кому-нибудь поможет: enter image description here

1 Ответ

3 голосов
/ 08 мая 2011

Источник спрайта, переданный SpriteBatch.Draw, указан в координатах спрайта (в пикселях), а - это , используемый в качестве источника для масштабирования, а также поворота и положения.

Масштаб указан какмножитель (поэтому Vector2.One имеет «нормальный» размер).

...