有没有人知道如何在没有SpriteBatch.Draw()
方法机会的情况下将转换应用于sprite?
(评论更新) 这就是我需要的:我有一个圆形精灵。这张照片包含阴影。我需要拉伸这个圆圈(制作椭圆)并旋转它,但我希望阴影不会将其位置改变为椭圆形。旋转和缩放每帧都会改变。我认为矩阵变换是可能的
答案 0 :(得分:0)
传递到SpriteBatch.Begin
的矩阵最后应用。使用它是通过SpriteBatch旋转操作后实现缩放操作的唯一方法(假设您的缩放比例不均匀)。
缺点是,如果每个精灵的比例不同,则必须为每个精灵开始一个新的批次。
你的另一个选择是编写你自己的精灵批处理器 - 但这似乎有点激烈。
答案 1 :(得分:0)
谢谢!我找到了解决方案,但它很慢=(
this.displayMatrix =
Matrix.CreateTranslation(-(new Vector3(Position, 0))) *
Matrix.CreateRotationZ(1) *
Matrix.CreateScale(new Vector3(new Vector2(1f, 2f), 1)) *
Matrix.CreateTranslation((new Vector3(Position, 0)));