我正在尝试创建2个纹理。曾经有一个图像作为精灵,但我将它改为纯黑色矩形。在我尝试为新精灵设置颜色之前,我没有遇到任何错误。然后我得到了一个"传入的数据大小对于这个资源来说太大或太小了#34;例外。
boostBar = new Texture2D(graphics.GraphicsDevice, 1,1, false, SurfaceFormat.Color);
boostBar.SetData<Color>(new Color[] { Color.Black });
// TODO: use this.Content to load your game content here
spriteBatch = new SpriteBatch(GraphicsDevice);
myTexture = new Texture2D(graphics.GraphicsDevice, 40, 40, false, SurfaceFormat.Color);
myTexture.SetData<Color>(new Color[] {Color.Black});
答案 0 :(得分:0)
SetData<Color>
的参数是一个数组,其中每个元素代表一个纹素颜色。您正在传递一个带有单个颜色元素的数组。但是你创建的第二个纹理是40x40,所以你需要1599个元素,而不是所需的纹素数据量。
因此,你得到的例外是数据“太小了”。
创建一个大小为40x40的颜色数组,将每个元素设置为Color.Black
(或任何你想要的颜色),并将 传递给SetData。