Массив графических блоков

Поэтому я занимаюсь настольной игрой, и единственная идея, которая пришла мне на ум, - сделать доску с картинными коробками. Моя доска 26 на 32 квадрата, а это значит, что для этого мне нужно много коробок с картинками.

Я подумал о двух методах, и я не уверен, что они работают.

Можно было бы на самом деле поместить 832 поля с картинками в мою форму, а затем пробежаться по ним и заполнить массив, однако это сделало бы форму действительно грязной и запоздалой. Я написал немного кода вручную, не знаю, сработает ли это, но это просто идея:

    For i = 831 To 0 Step -1
        PictureBox.i
        For e = arrMap(0, 0) To arrMap(25, 31)
            arrMap(a, e) = PictureBox.i
            If e = 32 Then
                e = 0
                a = a + 1
            End If
        Next
    Next

Другой метод, о котором я подумал, заключался в том, чтобы поместить одну графическую рамку в нужное место, а затем создать другую рядом с ней и поместить ее в массив в следующем расположении индекса, когда строка будет завершена, я бы поставил еще одну сверху. начальной точки и продолжайте до тех пор, пока все графические блоки не будут созданы и в массиве.

Я думаю, что мне нужен массив, потому что мне нужно сравнить положение на игровых фигурах и массив, я думаю, что это лучший способ сделать это.

Есть ли лучший способ сделать доску для игры или если это жизнеспособно, есть идеи?

PS. Я делаю это VB

1 ответ

Это не очень хорошая идея использовать отдельные Pictue Box для каждого государства,

Я предлагаю использовать Panel с высотой и шириной игрового поля и установить фоновое изображение в качестве доски (карта матрицы)

Отделяйте панель как матрицу и найдите позицию индекса матрицы, по которой щелкнули

Например от 80 до 90 доски.

если индекс каждой матрицы составляет 5*5 пикселей изображения, тогда 80*5 и 90*5 - это высота и ширина панели

Поиск позиции щелчка на щелчке мыши на панели >> Например, Position (21,14) => [21/5] = 4 и [14/5] = 2, поэтому выбрана матрица [4,2]

Теперь используйте текущее фоновое изображение и нарисуйте новое изображение или измените изображение на новое

Если имеется только одно движущееся изображение, вы можете использовать один графический блок и перемещать графический блок по этому алгоритму.

Использование команды рисования графики вместо новой Pictue Box изменить фоновое изображение на новое изображение с новым состоянием

Вы можете сохранить данные матрицы и игровые данные в пользовательском классе, например game data

Кстати, для этого типа игр не рекомендуется использовать графическое поле:)

Другие вопросы по тегам