[C#] как нарисовать несколько изображений без мерцания?
Я делаю стратегическую игру на C# (ничего слишком дикого, никакой анимации или экшена). Мне удалось нарисовать участок карты и позволить пользователю прокручивать его, используя DrawImage и указать область изображения карты для рисования:
RectangleF srcRect = new RectangleF(currentMapX, currentMapY, 500, 500); mapSectionGraphics.DrawImage(mapImage, 0, 0, srcRect, GraphicsUnit.Pixel);
Теперь, когда я прокручиваю карту, она работает нормально, но когда я рисую дополнительные изображения на карте, они мерцают при прокрутке.
В идеале, я думаю, я бы нарисовал всю карту со всеми объектами на ней в одном PictureBox, и затем возьмите фрагмент из этого составного изображения, чтобы нарисовать его на экране навигации по карте. Это устраняет мерцание, так как карта не нуждается в постоянном создании резервной копии во время прокрутки.
Вот мой вопрос... как мне это сделать? Я все еще изучаю веревки в C#, поэтому я надеюсь, что что-то подобное можно сделать не слишком сложным способом. Спасибо!
Что я уже пробовал:
Насколько я вижу, я могу использовать DrawImage только для рисования реальных "графических" ресурсов PictureBoxes, а не фактического результата нескольких операций рисования.
Я действительно нашел фрагмент кода, который позволяет скопировать результат и нарисовать его в другой PictureBox, и это хорошо сработало, но для этого источник (в моем случае полная карта) также должен быть виден на экране, чего я не хочу.