У меня странная проблема, которая, как мне кажется, из-за моего относительного недостатка знаний о платформе XNA я не могу исправить.
По сути, у меня есть ссылка на Texture2D, настроенная на новый экземпляр Texture2D.Во время выполнения некоторые его пиксели устанавливаются, и все это прекрасно работает, как показано в gameloop.
Странно, если я устанавливаю ссылку на ноль (она будет рисовать, только если не ноль), это какОжидаемый не рисует.
Позже я установил ссылку на новый Texture2D, и он начал рисовать его на экране.Проблема в том, что он содержит все данные исходного объекта Texture2D.
РЕДАКТИРОВАТЬ
Извините, я не был ясен раньше.
То, что у меня есть, что-товот так ...
private Texture2D WorkingTexture {get; set; }
private void Update()
{
if(some input)
{
this.WorkingTexture = null;
}
if(some other input)
{
this.WorkingTexture = new Texture2D(this.GraphicsDevice, 500, 500, true, SurfaceFormat.Color);
this.WorkingTexture.SetData<Color>(0, new Rectangle((int)vector2.X, (int)vector2.Y, 4, 4), colors, 0, 16);
}
}
private void Draw()
{
if (this.WorkingTexture != null)
{
spritebatch.draw(this.WorkingTexture,.....);
}
}
ВТОРОЕ РЕДАКТИРОВАНИЕ
Я также установил цикл for и вручную установил каждый пиксель текстуры в цвет после его создания.,это работает, но все равно показывает пиксели в качестве цветов, которые я установил ранее.Это очень странно.
Пожалуйста, не обращайте внимания на эту тему.Проблема была очень смущающей из-за моих собственных действий.У меня был какой-то код, который буферизовал пиксели для изменения, и да ... вы догадались, я не очищал его, и он снова и снова делал работу над новым экземпляром текстуры.
очень смущенно ....