XNA - 重复纹理x次

时间:2014-04-11 00:37:14

标签: c# xna sprite

我有一个基本的砖纹理,我想在X轴上重复一定次数。而不是使用spriteBatch.Draw(...)一遍又一遍地绘制(可能)数百个相同的纹理,是否有更简单的方式,如spriteBatch.Draw(brick,vector_array[],color)其中brick是纹理,vector_array[]将是全部我的矢量点可以反复绘制纹理吗?

与这个想法无关,我的下一个最佳想法是做类似的事情:

for (int i = 0; i <= 16; i += 1)
            {
                spriteBatch.Draw(brick, brickXY, Color.White);
                brickXY.X += 32;
            }

希望在右边重复绘制16个砖纹理。 (每个纹理是32x32)它这样做但它只在屏幕上停留一帧。我怎么能解决这个问题?

感谢您的帮助! :d

1 个答案:

答案 0 :(得分:1)

尝试在其他地方设置BrickXY。 你正在设置BrickXY,但它是一个数组,所以它需要像 BrickXY [INT] 尝试类似的事情:

    protected override void LoadContent()
    {
        spriteBatch = new SpriteBatch(GraphicsDevice);
        brick = Content.Load<Texture2D>("Whatever texture you want here");
        (int a = 0; a < brickXY.Length - 1; a++)
        {
            brickXY[a].X += (32 * a);
        }
    }

之后设置了所有值,然后绘制它们,否则砖块将开始移动。

    protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);
        spriteBatch.Begin();
        for (int i = 0; i <= brickXY.Length - 1; i++)
        {
            spriteBatch.Draw(brick, brickXY[i], Color.White);
        }
        spriteBatch.End();
        base.Draw(gameTime);
    }