0

我正在使用 RotateFlip 水平翻转精灵。似乎在绘制图形而不是图像时应用了 RotateFlip。

问题是有些精灵需要翻转,有些则不需要(取决于精灵的方向)。我不想每次绘制翻转精灵时都克隆图像。

4

1 回答 1

1

考虑在Graphics对象上使用变换矩阵,而不是RotateFlip在图像上使用。翻转相当于将 X 或 Y 坐标缩放 -1。您可以预先计算单个翻转矩阵并在需要时使用它:

Matrix flipX = new Matrix();
flipX.Scale(-1, 1);

graphics.Transform = flipX;
// Draw your sprite here
graphics.ResetTransform();

但是请注意,您必须在绘图时传递修改后的坐标,例如。使用上述转换,您必须传入ContainerWidth - X而不是X.

于 2010-10-09T18:43:34.843 回答