Я использую 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 показан какПоследний параметр не будет отображаться на экране, так вы создадите прозрачность.
Это работает по большей части, но оставляет розовую линию вокруг моего изображения и края изображения.После проб и ошибок я обнаружил, что если я вернусь в фотошоп, я могу убрать розовую рамку, нарисовав ее розовым цветом.Это можно увидеть на кораблях слева.
Я начинаю думать, что фотошоп смешивает края изображения так, что фон не все того же оттенка розового, хотя у меня нет доказательств.
Может кто-нибудь помочь исправить это с помощью программирования или ошибка в изображении?
Если кто-то хорошо разбирается в фотошопе, могут ли они сказать мне, как исправить изображение, я в основном использую png, но яготовы изменить при необходимости.
edit: код создания текстуры по запросу
character_image = LoadTexture("character.bmp", D3DCOLOR_XRGB(255,0,255));
if (character_image == NULL)
return 0;