Создание карты из спрайтов на основе массива после нажатия кнопки - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

VB 2015. С помощью нехитрых алгоритмов генерируется массив 40х40. За каждым значением закреплено определенное изображение 16х16 пикселей (допустим, что 0 - нет спрайта, 1 - есть спрайт). Необходимо эту совокупность всецело выводить в один-единственный элемент (предположительно PictureBox) по каждому нажатию клавиши без значительных задержек. Реализовывал это раньше через FlowLayoutPanel и 1600 отдельных PictureBox, но это сильно отжирает ресурсы компьютера при первоначальной отрисовке и не позволяет грамотно использовать скроллинг изображения внутри элемента-панели. Использую циклы, m как номер столбца, n на номер строки. P.S. С System.Drawing не дружу, ибо компилятор не любит, когда "e As EventArg" в другом сабе становится "e As PaintEventArg" (пишет, что невозможно привести к этому типу).

Решение задачи: «Создание карты из спрайтов на основе массива после нажатия кнопки»

textual
Листинг программы
  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.         Using g As Graphics = Panel1.CreateGraphics
  3.             Dim img As Image = Image.FromFile("c:\01.png")
  4.             Dim cell(1599) As Rectangle
  5.             For i = 0 To cell.Length - 1
  6.                 cell(i) = New Rectangle
  7.                 With cell(i)
  8.                     .Width = 16
  9.                     .Height = 16
  10.                     .X = (i Mod 40) * 16
  11.                     .Y = (i \ 40) * 16
  12.                 End With
  13.                 g.DrawImage(img, cell(i).Location)
  14.                 'g.DrawRectangle(Pens.Black, cell(i))
  15.             Next
  16.         End Using
  17.     End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы