我试图通过在到达屏幕末尾时添加到x和y坐标来绘制一行中的Texture2D
。 Draw
方法不会绘制多个精灵,只是以20的速度移动第一个精灵,而不是每20个像素绘制一个精灵。
protected override void Draw(GameTime gameTime)
{
GraphicsDevice.Clear(Color.White);
// TODO: Add your drawing code here
spriteBatch.Begin();
spriteBatch.DrawString(GameText, MenuText, new Vector2(325,75), Color.Red);
do
{
spriteBatch.Draw(EarthGrass, place, Color.White);
place.X += 20;
} while (place.X < 800);
place.X = -20;
place.Y += 20;
do
{
int IDBint = IDB.Next(11);
if (IDBint == 10)
{
spriteBatch.Draw(PooperMachoOre, place, Color.White);
}
else
{
spriteBatch.Draw(EarthDirt, place, Color.White);
}
place.X += 20;
} while (place.X < 800);
place.X = -20;
place.Y += 20;
spriteBatch.End();
base.Draw(gameTime);
}
答案 0 :(得分:0)
乍一看你的代码看起来很好,即使我这些天大麦看到做循环。我假设你想在X位置更多而不是460像素后停止绘图,因为它从0开始。所以只需将你的>
翻转到<
,你也会需要在每帧重置X位置,否则它将从中断处开始。
do
{
place.X += 20;
spriteBatch.Draw(EarthGrass, place, Color.White);
} while (place.X > 460);
place.X = 0;
答案 1 :(得分:0)
如果你这样做:
do
{
int IDBint = IDB.Next(11);
if (IDBint == 10)
spriteBatch.Draw(PooperMachoOre, place, Color.White);
else
spriteBatch.Draw(EarthDirt, place, Color.White);
place.X += 20;
} while (place.X < 800);
您的Draw
将更改所有图像序列以绘制每一帧(并且 Cyral 写入时,它每秒发生60次)。
您不必在Draw
方法中调用随机生成器,但必须将纹理序列设置为仅绘制一次。例如,在Initialize
中。