Массив графических блоков
Поэтому я занимаюсь настольной игрой, и единственная идея, которая пришла мне на ум, - сделать доску с картинными коробками. Моя доска 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
Кстати, для этого типа игр не рекомендуется использовать графическое поле:)