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 に答える