2011-07-20 2 views
9

утро все (если его утром, где вы находитесь)XNA ничья/краска на Texture2D во время выполнения

Я смотрел вокруг и не видели удовлетворительный способ сделать это так думал, я хотел бы спросить вокруг ...

Идеальный мир Я хотел бы иметь возможность генерировать прозрачный объект Texture2D. Рисуя это на экране, я хотел бы иметь возможность «рисовать» его, т. Е. Когда левая кнопка мыши опускается, какой бы пиксель находился над курсором, должен быть установлен на черный. После этого я должен был бы использовать эту текстуру.

Использование текстуры - легкая часть, мы можем просто создать новый атрибут Texture2D для объекта «painting» и использовать его в методе SpriteBatch.Draw. Две сложные детали:

  1. Создание объекта texture2D определенного размера, заполненного прозрачностью в коде.
  2. Редактирование, что Texture2D на лету (то есть возможность изменять цвета пикселей)

Если кто имеет опыт этих вас вход будет очень высоко ценится.

ответ

12

Вы можете либо использовать RenderTarget2D (MSDN), который сам по себе является Texture2D (так что вы можете использовать его в SpriteBatch.Draw). Это позволяет визуализировать текстуру так же, как и на экране. Для этого нужно использовать GraphicsDevice.SetRenderTarget (MSDN).

Или вы можете использовать Texture2D.SetData (MSDN) для непосредственного управления пикселями. Вы можете напрямую построить прозрачный Texture2D (MSDN). Не забудьте: Dispose любых текстур и других ресурсов, которые вы создаете сами!

+1

Блестящий, спасибо, что вы очень отзывчивый ответ! Я загружаю VS и делаю макет, как только получаю шанс, плохой отчет, надеюсь, с некоторым примером кода для всех, кто прогуливается по этому вопросу. – Nick

+0

если вы не против, я, случается, очень тщательно прогуливаюсь по этому вопросу – annonymously