0

我有一个落沙风格的游戏,目前只使用两种颜色,黑色和青色。我正在使用设置纹理的颜色texture.SetData<Color>(colorArray);

主程序更新颜色,当一个像素离开一个点时,该位置的颜色设置为黑色,新点设置为青色。但是,正如您在图片中看到的那样,青色在外面并不均匀(仔细看右下角,它是非常深的蓝色)。这是在 Windows Phone 模拟器上发生的。起初我以为屏幕可能只是更新得太快了,以至于颜色会快速投影并离开,但在停止更新方法(拍摄下图)后,颜色保持不变。

关于为什么会发生这种情况的任何想法?

没有阴影(除非它是自动完成的,我没有意识到)。只有:colorArray[position] = Black;colorArray[newPos] = Cyan;

http://i.imgur.com/SfJweTg.png

    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);              
    }
4

0 回答 0