現在、黒とシアンの 2 色のみを使用している砂落ちスタイルのゲームがあります。を使用してテクスチャの色を設定していますtexture.SetData<Color>(colorArray);
メイン プログラムは色を更新します。ピクセルがスポットを離れると、その位置の色が黒に設定され、新しいスポットがシアンに設定されます。ただし、写真でわかるように、シアンの色は全体的に均一ではありません (右下をよく見てください。非常に暗い青色です)。これは、Windows Phone エミュレーターで発生しています。最初は、画面の更新が速すぎて色が飛び出してすぐに消えてしまうのではないかと思っていましたが、更新方法を停止した後 (次の写真を撮るため)、色は同じままでした。
なぜこれが起こっているのかについてのアイデアはありますか?
シェーディングはありません (自動的に行われていて、私が気付いていない場合を除きます)。のみがあります:colorArray[position] = Black;
およびcolorArray[newPos] = Cyan;
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.Black);
spriteBatch.Begin();
map.Draw(spriteBatch);
spriteBatch.DrawString(spriteFont, fps, Vector2.Zero, Color.White);
spriteBatch.End();
base.Draw(gameTime);
}
//map.Draw()
public void Draw(SpriteBatch sb)
{
sb.Draw(pixels, Vector2.Zero, Color.White);
}
public void Update()
{
//this is only a portion of the update method
colors[currentpos] = getColor(0);// returns a color from a list
//some more updates not related to the texture
//blah
//blah blah
colors[currentpos] = getColor(ID);// returns a color from a list
//at the end of the update loop
texture.SetData<Color>(colors);
}