Я попытался нарисовать Texture2D
s в строке, добавив координаты x и y, когда она дойдет до конца экрана. Метод Draw
не рисует несколько спрайтов, он просто перемещает первый на скорости 20 вместо того, чтобы рисовать каждые 20 пикселей.Autodraw Texture2D без повторной записи нескольких строк
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? если вы не обновляете эту переменную? –
Метод draw вызывается много раз в секунду вместе с методом обновления (обычно 60 кадров в секунду), каждый кадр должен сбросить место, чтобы следующий кадр мог правильно рисовать. В XNA вы должны перерисовать все кадры, иначе он будет очищен (есть разные способы, но это основы его) – Cyral