Я пытаюсь сделать игру 2048 на C#, но у меня проблема, когда я перемещаю плитки.Обмен двумя PictureBoxes
Вот где я держу плитки:
picture = new PictureBox[4, 4] {
{pic1,pic2,pic3,pic4},
{pic5,pic6,pic7,pic8},
{pic9,pic10,pic11,pic12},
{pic13,pic14,pic15,pic16} };
И когда я нажимаю «W» переместить его вверх:
public void Up()
{
for (int i = 1; i < picture.GetLength(0); i++)
for (int j = 0; j < picture.GetLength(1); j++)
if(picture[i,j].Image!=null && picture[i-1,j].Image==null)
{
picture[i - 1, j].Image = picture[i, j].Image;
picture[i, j].Image = null;
Up();
}
}
но код только переставляет образы из PictureBox не сам PictureBox , Как я могу поменять картинку с изображением и всем его свойством?
Почему Поменяв 'Image' внутри изображения недостаточно? Если вы хотите переместить ящики с изображениями, вам нужно изменить свойство 'Location'' PictureBox'. –
Когда я пытаюсь сделать сумму из 2 плиток, мне нужен точный индекс, если я изменяю только изображения, индекс остается в исходной позиции –
Вам нужна лучшая форма данных для «Карты» игры, чем просто двумерная массива 'PictureBox', будет сложно сказать, какое значение представляет pictureBox (даже с отражением и опираясь на имя переменной, если вы об этом подумали). Вы можете, например, используйте 2-мерный массив 'int'. и работать над этим. 'var map = new int [4,4] = {{1, 1, 1, 0}, ....};' Что касается «взаимозаменяемости»: посмотрите http://stackoverflow.com/questions/3473597/it-is-возможно-to-copy-all-the-properties-of-an-an-control-c-window-формы для клонирования элемента управления с отражением. –