私はXNAフレームワークの知識の私の相対的な不足が私を修正することを禁止すると信じて奇妙な問題があります。XNA new Texture2Dは古いデータを保持します
基本的に私はTexture2Dの新しいインスタンスに設定されているTexture2Dリファレンスを持っています。実行時に、そのピクセルのいくつかが設定され、これはすべてgameloopで描画されたようにうまく動作します。
奇妙なことは、nullに参照を設定した場合(nullでない場合のみ描画されます)、期待通りに描画されないことです。
その後、新しいTexture2Dへの参照を設定し、それを画面に描画し始めます。問題は、元のTexture2Dオブジェクトのすべてのデータを保持することです。私は前に明確な波平
申し訳
EDIT。私はループのためにも設定し、手動でそれが後の色にテクスチャのすべてのピクセルを設定している。このような何か...
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,.....);
}
}
SECOND EDIT
で持って何
作成した。これはまだ動作しますが、以前に設定した色としてピクセルが表示されます。これは非常に奇妙です。
このスレッドは無視してください。問題は私自身がやっていることは非常に恥ずかしいほどでした。私はピクセルを変更してバッファリングするコードをいくつか持っていました...はい、あなたはそれをクリアしていないと思っていました。新しいテクスチャインスタンス上で作業をやり直していました。
非常に恥ずかしい
....
こんにちは、混乱のために、私はサンプルコードで質問を更新しました。 – Nick