0

在此处输入图像描述

看看上面的图片。我正在创建基于图块的游戏的(娱乐)。在我的其他精灵中,我只是将地形方块放入网格中,它们是实心的,所以没有问题。这里的问题是,如果我现在使用这个角色,它会试图显示他身后的粉红色(他是 16x16)。

我正在使用 System.Graphics 来显示项目(并在使用 graphics.DrawImage() 时将它们剪掉)。有什么办法可以让它忽略特定的颜色并使它们透明吗?

我正在使用 VB.net,所以所有 .net 答案都是可以接受的。

对于评论中的一点(或答案中的额外点),使用粉红色网格包含所有精灵的方法是什么?

4

1 回答 1

1

您可能应该将图像转换为 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
于 2011-09-11T12:56:34.373 回答