XNA Sprite Scaling:从精灵中心寻找均匀扩展

时间:2011-05-07 21:52:25

标签: xna sprite scaling

当我缩放我的精灵时,它延伸到右下角,当所需的效果是它保持放置并以同心圆“增长”时。

我摆弄原点,但似乎只影响旋转。我也考虑过使用边界矩形来缩放它,但我正在寻找一种最好的做法,以免在门外养成坏习惯。

这是我拨打电话的代码。唯一更改的arg是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 个答案:

答案 0 :(得分:3)

传递给SpriteBatch.Draw的精灵原点在精灵坐标(像素)中指定, 用作缩放的原点,以及旋转和位置。

将比例指定为乘数(因此Vector2.One处于“正常”大小)。