Я должен сказать вам, что я совершенно НОВИНКА для XNA и ничего не знаю о вершине, мультисэмплинге и т. Д. И т. Д.
Тем не менее, я так люблю программирование и Windows Phone, что хотел начать грандиозную задачу ... создать игру XNA! : D
хорошо, давайте прекратим историю и начнем объяснять ..
Я делаю большую игру ... которую я проработал почти 1 месяц, теперь она почти закончена ..
У меня просто большая проблема, которая является центральной точкой игры ... думайте об этом как о головоломке 1024x800, каждая точка головоломки может быть нажата, и когда она нажата, она должна изменить цвет ..
так что у нас есть 2 трудных момента,
1) ПОНИМАЙТЕ, ЧЕМУ Я НАЖИМАЛ
2) ЦВЕТ ЭТОЙ ЧАСТИ
Я думал о 2 подходах
ПЕРВЫЙ ПОДХОД
1 PNG, большой фон головоломки 1024x800
N PNG для каждой части головоломки, с прозрачным слоем вокруг части (каждая часть 1024x800, в правильном положении)
, объединив N + 1 PNGS, мы получили полную загадку, теперь ДЕЙСТВИТЕЛЬНО легко понять, какую часть я нажал, потому что мне просто нужно циклически обработать N текстур, и когда я получил ту, у которой нет прозрачной пиксель в точке нажал, у меня есть кусок!
затем, для раскраски, я просто раскрасил текстуру в части прорисовки.
это просто, проблема в том, что если мне нужно перетащить, увеличить, 50 * 4 pngs, это действительно медленно: (
ВТОРОЙ ПОДХОД
1 PNG большая головоломка 1024x800 со всеми объединенными частями, КАЖДАЯ часть будет иметь разную цветовую заливку, например, 1) 250 250 250 2) 245 245 245 и т. Д.
После загрузки PNG я вычисляю индексы пикселей, используя GetData для каждого куска и сохраняю его в массиве для каждого куска
для того, чтобы получить выбранный кусок, это просто ... Я просто вычисляю y * width + x и получаю кусок с этим значением в массиве.
проблема в том, что когда мне нужно раскрасить ... я должен перебрать массив и изменить RGB, а затем, наконец, сделать SetData ... требуется 1 секунда для окрашивания этого фрагмента ... это МОЖЕТ быть приемлемым ... но Я хочу лучше ...
второй подход намного ОЧЕНЬ НАМНОГО быстрее при перетаскивании и масштабировании, потому что это всего 1 PNG, и я могу использовать большее разрешение благодаря этому, намного лучшему подходу
есть предложения ??
Спасибо
Luca