Моя основная проблема: я не понимаю, как получить позицию сгенерированных фрагментов или как определить, где находится мышь. Должен ли я использовать столкновение для обнаружения мыши или чего-то еще? Есть ли что-то, что я могу сделать, чтобы оптимизировать мой код и облегчить получение таких вещей, как позицияЛучший способ сделать выбор мыши на случайно сгенерированных плитах
Я взял некоторые вещи из своего кода, например, загружая текстуры, чтобы сделать их короче для вас, потому что это не так. часть проблемы.
Моя Tile генерация кода
public Block[] tiles = new Block[3];
public int width, height;
public int[,] index;
public Rectangle tileRect;
public void Load(ContentManager content)
{
tiles[0] = new Block { Type = BlockType.Grass, Position = Vector2.Zero, texture = grass};
tiles[1] = new Block { Type = BlockType.Dirt, Position = Vector2.Zero, texture = dirt};
width = 50;
height = 50;
index = new int[width, height];
Random rand = new Random();
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
index[x,y] = rand.Next(0,2);
}
}
}
public void Draw(SpriteBatch spriteBatch)
{
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
spriteBatch.Draw(tiles[index[x,y]].texture, tileRect = new Rectangle(x * 64, y * 64, 64, 64),
Color.White);
}
}
}
дублирующих Код
public enum BlockType
{
Dirt,
Grass,
Selection
}
public class Block
{
public BlockType Type { get; set; }
public Vector2 Position { get; set; }
public Texture2D texture { get; set; }
}
Это действительно полезно, и это работает до некоторой степени, но я не понимаю, как просто получить один фрагмент, он удаляет все плитки с одинаковой текстурой. Это происходит, когда я делаю плитки [index [x, y]]. Texture = selection; Я бы хотел, чтобы это было нарисовано в методе draw, но я не понимаю, что использовать для Rectangle, чтобы получить позицию этой точной плитки, потому что плитки [index [x, y]]. Position.X и Y doesn 't work – Corey
Кроме того, если вы пытаетесь добавить текстуру «Выбранные», вы должны нарисовать ее ** поверх ** выбранной плитки: она будет намного проще, чем временно заменить текстуру выбранной плитки. – Msonic
Да, но прямо сейчас я просто пытаюсь получить квадратную текстуру выбора, чтобы нарисовать поверх плитки, которую я текуще замалчивает над – Corey