我有一个落沙风格的游戏,目前只使用两种颜色,黑色和青色。我正在使用设置纹理的颜色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);
}