イメージを保持するために LPDIRECT3DTEXTURE9 を使用しています。
これは、自分の写真を表示するために使用される関数です。
int drawcharacter(SPRITE& person, LPDIRECT3DTEXTURE9& image)
{
position.x = (float)person.x;
position.y = (float)person.y;
sprite_handler->Draw(
image,
&srcRect,
NULL,
&position,
D3DCOLOR_XRGB(255,255,255));
return 0;
}
本によると、最後のパラメーターが画面に表示されないため、RGBカラーが表示されています。これが透明度を作成する方法です。
これはほとんどの場合機能しますが、画像と画像の端にピンクの線が残ります。試行錯誤の結果、Photoshop に戻ると、ピンク色で上に描画することでピンクのボックスを削除できることがわかりました。これは左側の船で見ることができます。
証拠はありませんが、背景がすべて同じピンク色にならないように、Photoshop が画像のエッジをブレンドしていると考え始めています。
誰でもプログラミングでこれを修正できますか、それとも画像のエラーですか?
フォトショップが得意な方がいらっしゃいましたら、画像の修正方法を教えていただけないでしょうか。私は主に png を使用していますが、必要に応じて変更します。
編集: 要求に応じたテクスチャ作成コード
character_image = LoadTexture("character.bmp", D3DCOLOR_XRGB(255,0,255));
if (character_image == NULL)
return 0;