Если вы хотите действительно простой способ, вот он: сначала вы создаете новый класс и называете его Tile:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework; // Don't forget those, they will let you
using Microsoft.Xna.Framework.Content; // access some class like:
using Microsoft.Xna.Framework.Graphics; // Texture2D or Vector2
namespace Your_Project _Name
{
class Tile
{
}
{
Пока все хорошо, теперь создайте текстуру и положение в своем классе простокак это:
namespace Your_Project _Name
{
class Tile
{
Texture2D texture;
Vector2 position;
public void Initialize()
{
}
public void Draw()
{
}
}
{
Как вы можете видеть, я также создал два метода, Initialize и Draw, теперь мы инициализируем нашу текстуру и положение для текстуры плитки в публичном void Initialize (), я незнаю, как вы используете ContentManager, но здесь есть простой способ:
public void Initialize(ContentManager Content)
{
texture = Content.Load<Texture2D>("YourfloorTexture"); //it will load your texture.
position = new Vector2(); //the position will be (0,0)
}
Теперь нам нужно нарисовать нашу текстуру несколько раз, как мы это сделаем?Сказав это, код может быть более сложным, но вы поймете, что я добавлю SpriteBatch, чтобы рисовать.Все это делается в публичном void Draw ():
public void Draw(SpriteBatch spriteBatch)
{
for (int i=0; i<30;i++) //will do a loop 30 times. Each Time i will =
//a valor from 0 to 30.
{
spriteBatch.Draw(texture, position, Color.White);
//Will draw the texture once, at the position Vector2
//right now position = (0,0)
spriteBatch.Draw(texture, new Vector2((int)i,(int)i), Color.White);
//Will Draw the texture 30 times, the first time on the position (0,0)
//Second Time on (1,1) .. third (2,2) etc...
spriteBatch.Draw(texture, new Vector2((int)position.X + (i * texture.Width), (int)position.Y + (i * texture.Height), Color.White));
//Will Draw the Texture 30 times Spaced by the Width and height
//of the texture (this is the code you need)
}
}
Я не пробовал, но он должен работать, теперь это всего лишь пример, вы можете выяснить все остальное.Есть много других способов сделать это, но этот действительно прост.Хорошо, теперь последний шаг заключается в реализации этого класса, поэтому перейдите в ваш основной класс, где у вас есть весь ваш код, и перед этим:
public Game1()
Создайте новый экземпляр вашего класса плиток
Tile tile;
и инициализируйте его в защищенном переопределении void Initialize ():
tile = new Tile();
tile.Initialize(Content);
Теперь вам нужно нарисовать его на экране, пройти в конец класса и найти защищенное переопределение void Draw (GameTime gameTime)и вызовите метод draw нашего класса:
spriteBatch.Begin();
tile.Draw(spriteBatch);
spriteBatch.End();
Это все шаги для завершения простой простой системы плиток.Как я уже говорил, существует множество других методов, которые вам просто нужно прочитать, чтобы узнать о них или создать их самостоятельно.