我正在使用RotateFlip水平翻转精灵。当绘制图形而不是图像时,似乎应用了RotateFlip。
问题是有些精灵需要翻转而有些精灵不需要(取决于精灵的方向)。我每次绘制翻转精灵时都不想克隆图像。
答案 0 :(得分: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
。