Самый эффективный способ манипулирования сеткой квадратов - PullRequest
1 голос
/ 03 ноября 2010

В приложении Windows Phone 7 Silverlight мне приходится манипулировать квадратными объектами внутри матрицы.Единственная операция, которую я должен сделать с ними, - это изменить цвет заливки, но я должен сделать это в быстром непрерывном цикле, поэтому он должен быть эффективным.

Очевидно, что это требование больше похоже на XNA, чем Silverlightно я взвесил все за и против и решил использовать Silverlight, поскольку есть и другие вещи, которые будут гораздо проще в SL, чем в XNA.

Очевидный способ сделать это - создать Grid и программно заполнить егоОбъекты прямоугольника (чтобы я мог сохранить ссылку на каждый прямоугольник в двумерном массиве).Это прекрасно работает в Windows / Web Silverlight, но я беспокоюсь, что перебор всего массива Rectangle при изменении их цветов может быть слишком медленным на телефоне (например, мне не нужны все функции DependencyObject, кроме Rectangle).кажется самым простым объектом с цветом фона).

Есть ли лучший подход, чем Grid + Rectangles?

1 Ответ

2 голосов
/ 03 ноября 2010

Трудно сказать, не видя приложение, но в отличие от настройки цикла foreach (или чего-либо еще), я бы создал объект некоторого типа (например, GameBoard), и Bind () цвет каждого квадрата для свойства Игровая доска. Затем создайте какую-нибудь функцию в GameBoard (например, SetSquareColors) с параметрами для передачи сразу во все квадраты.

GameBoard.SetSquareColor (x1y1, x2y1, x3y1, x1y2, х2у2, x2y3, x1y3, ...)

Или что-то в этом роде ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...