Правильно вырезать изображение из розовой задней сетки, чтобы нарисовать - PullRequest
0 голосов
/ 11 сентября 2011

enter image description here

Посмотрите на изображение выше. Я создаю (отдых) игры на основе плитки. В других моих спрайтах я просто помещал квадраты ландшафта в сетку, они твердые, поэтому проблем не было. Проблема здесь в том, что, если я сейчас использую этого персонажа, он попытается показать розовый цвет позади него (он 16x16).

Я использую System.Graphics для отображения элементов (и вырезаю их при использовании graphics.DrawImage ()). Есть ли способ, которым я могу игнорировать определенные цвета и сделать их прозрачными?

Я использую VB.net, поэтому все ответы .net приемлемы.

Для пункта в комментариях (или дополнительного пункта в вашем ответе), как называется метод, в котором вы используете розовую сетку для хранения всех ваших спрайтов?

1 Ответ

1 голос
/ 11 сентября 2011

Вам, вероятно, следует преобразовать ваше изображение в PNG и сделать фон прозрачным. Если нет, вы можете просто преобразовать растровое изображение:

Public Class Form1
  Private bmp As Bitmap

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
    bmp = New Bitmap(bitmapFileName)
    bmp.MakeTransparent(Color.FromArgb(255, 0, 220))
  End Sub

  Private Sub Form1_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) Handles MyBase.Paint
    e.Graphics.DrawImage(bmp, New Point(32, 32))
  End Sub
End Class
...