2013-04-19 5 views
0

Немного об этом: Мы создаем редактор уровней в Visual Studio с использованием C#, импортируя давно ушедшие измененные карты. Эти плиточные карты имеют несколько слоев и состоят из нескольких плиток. Все они показаны сверху друг друга. Чтобы закончить, должен быть выборка для выбора плитки.Лучший способ визуализации редактируемых плиточных карт? C# & Visual Studio 2012

Наш текущий подход: Создайте объекты «Panel» в форме для каждого слоя плитки-карты. Когда вы загружаете каждый слой с соответствующей панелью, мы складываем все панели в eachother, «Parent'ing каждый слой к следующему слою. Панель Selectionbox также получает родителя. (ПОЧЕМУ? Когда вы этого не сделаете, верхний слой установил бы фон в форму, а серый, второй слой не будет виден). Итак, это было бы похоже ... SelectionBoxPanel -> Panel_3 -> Panel_2 -> Panel_1 -> BackgroundPanel.

Проблема: При вызове события paintBoxPanel (при перемещении по сцене) каждая родительская панель перерисовывается. Очевидно, что он требует много CPU, и каждая плитка на слое обновляется!

Вопрос: Есть ли другой файл (например, файл шейдера) или объект (например, панель) или что-нибудь еще, что мы можем использовать для графического представления этих слоев?

ответ

0

Мы исправили проблему,

  1. Мы изменили все панели в PictureBoxes. (Мы потеряли функциональность прокрутки, но в настоящее время работаем над этим).

  2. Отправлено от Parenting к методам Controls.Add (Child), потому что Pictureboxes не включает параметры родительского контроля.

  3. Прикладная двойная буферизация ко всем изображениям.

Выполнено.