我有一个基本的砖纹理,我想在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
答案 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);
}