RotateFlip - когда он применяется? - PullRequest
0 голосов
/ 09 октября 2010

Я использую RotateFlip для переворачивания спрайтов по горизонтали. Кажется, что RotateFlip применяется, когда графика рисуется, а не изображение.

Проблема в том, что некоторые спрайты нужно переворачивать, а некоторые нет (в зависимости от направления спрайта). Я не хочу клонировать изображение каждый раз, когда рисую перевернутый спрайт.

1 Ответ

1 голос
/ 09 октября 2010

Попробуйте использовать матрицу преобразования на объекте 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.

...