2013-06-06 6 views
2

오후의 사람들과 사용자 정의 비트 맵,알레그로 5 - 알파 채널

내가 그 확신

bitmap = al_create_bitmap(30, 30); 
al_set_target_bitmap(bitmap); 
al_clear_to_color(al_map_rgb(255,255,255)); 
.... 
al_draw_tinted_bitmap(bitmap, al_map_rgba(0, 0, 0, 0.5), X, Y, 0); 

나는 알파 채널 사용자 정의 비트 맵을 만들 수있는 방법이 있는지 궁금 해서요을 만드는 비트 맵을 올바르게 만들거나 그리지 않으므로 실제로 조언을 사용할 수 있습니다. 사전에

감사합니다, 알렉스

답변

0

그것은 내 "경비원"비트 맵을 그리고 아래의 기능을 사용하여 알파 채널을 변경할 수 :

al_draw_tinted_bitmap(bouncer, al_map_rgba_f(1, 1, 1, alpha) 40, 0, 0); 

이 이전에 작동하지 않았다을, 그래서 al_set_blender를 추가하는 것이 "미스터리"를 해결했다고 추측합니다.

도움 주셔서 감사합니다.

1

당신의 코드 문제있는 유일한 방법은 다음과 같습니다

al_map_rgba(0, 0, 0, 0.5) 

가 있어야한다 :

al_map_rgba_f(0, 0, 0, 0.5) 

전 범위는 0의 정수이다 255.

또한 알레그로의 기본 블렌드 r은 pre-multiplied alpha입니다. 당신이 50 %에 붉은 색조를하고 싶어한다면, 당신은 사용하십시오 : 당신이 그것에 대해 생각하지 않는 경우

float a = 0.5; 
... al_map_rgba_f(1.0 * a, 0.0 * a, 0.0 * a, a) ... 

, 당신은 아마 가정하고이 보간입니다.

al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA) 

을하지만 위의 링크에서 언급 한 이유에 대한 기본되지 않습니다 : 즉, 대부분의 사람들에게 더 직관적 믹서기가 될 것으로 보인다. 나는

al_set_blender(ALLEGRO_ADD, ALLEGRO_ALPHA, ALLEGRO_INVERSE_ALPHA); 

을 설정 한 후

+0

위에서 언급 한대로 수정하려고 시도했지만 비트 맵을 표시 할 수없는 것처럼 빈 화면이 나타날 때까지 기다려야합니다. – Wracker