有谁知道如何将转换应用于雪碧没有SpriteBatch.Draw()
方法的机会?XNA雪碧转换
(更新时评论) 这就是我需要的:我有一个圆形精灵。这张照片包含阴影。我需要拉伸这个圆(使椭圆)并旋转它,但是我希望阴影不会将其位置改变为椭圆。旋转和缩放每帧改变一次。我认为这是可能的矩阵转换
有谁知道如何将转换应用于雪碧没有SpriteBatch.Draw()
方法的机会?XNA雪碧转换
(更新时评论) 这就是我需要的:我有一个圆形精灵。这张照片包含阴影。我需要拉伸这个圆(使椭圆)并旋转它,但是我希望阴影不会将其位置改变为椭圆。旋转和缩放每帧改变一次。我认为这是可能的矩阵转换
最后应用传递到SpriteBatch.Begin
的矩阵。使用此方法是通过SpriteBatch执行旋转操作后实现缩放操作的唯一方法(假设您的缩放比例不均匀)。
缺点是,如果每个精灵的比例不同,则必须为每个精灵开始一个新的批处理。
你的其他选择是编写你自己的精灵batcher - 但这似乎有点激烈。
谢谢!我找到了解决方案,但它是非常缓慢=(
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)));
你的问题是没有意义的,你可以尝试改写它你到底想达到 – 2010-11-08 12:59:35
我需要:??在第一旋转精灵,然后缩放它。方法SpriteBatch.Draw()首先缩放sprite,然后旋转它。 – 2010-11-08 13:23:11