Problema com surface
Enviado: Dom Nov 20, 2016 5:28 pm
Boa tarde, estou precisando salvar uma imagem através de uma surface porém estou tendo problemas.
O problema é o seguinte, eu preciso desenhar uma imagem normalmente e por cima desta imagem eu desenha uma imagem toda preta com certa transparência, desenhando uma sprite sobre a outra no evento draw o resultado é perfeitamente como o esperado, porém quando eu desenho da mesma forma as duas imagens na surface o resultado é diferente do esperado.
Segue um print, a imgem da esquerda foi gerada através de uma surface, a imagem da direita foi desenhada na tela uma sobre a outra usando o evento draw:

Aqui os únicos códigos presentes no projeto:
@CREATE:
@DRAW:
Eu preciso gerar a imagem através da surface e preciso que o resultado seja exatamente como o resultado da direita pois irei escrever sobre a imagem final utilizando texto na cor branca, eu não entendi o por que do problema, tentei desenhar um retângulo preto para escurecer a imagem de fundo e o resultado foi o mesmo que o resultado usando a sprite toda preta, alguém sabe qual o problema?
EDIT: A imagem gerada pela surface esta quase transparente salvei como png e coloquei no photoshop deu pra perceber
PRINT:

Mesmo assim não identifiquei solução para o problema.
O problema é o seguinte, eu preciso desenhar uma imagem normalmente e por cima desta imagem eu desenha uma imagem toda preta com certa transparência, desenhando uma sprite sobre a outra no evento draw o resultado é perfeitamente como o esperado, porém quando eu desenho da mesma forma as duas imagens na surface o resultado é diferente do esperado.
Segue um print, a imgem da esquerda foi gerada através de uma surface, a imagem da direita foi desenhada na tela uma sobre a outra usando o evento draw:

Aqui os únicos códigos presentes no projeto:
@CREATE:
Código: Selecionar todos
surf = surface_create(500,400);
surface_set_target(surf);
draw_clear_alpha(c_black, 0);
draw_sprite(sprite0,0,0,0); // Sprite de fundo com a imagem
draw_set_alpha(.65);
draw_sprite(sprite1,0,0,0); //Sprite preta
draw_set_alpha(1);
surface_reset_target();
surface_save(surf,"surf1.png");
spr = sprite_create_from_surface(surf,0,0,500,400,0,0,0,0);
sprite_save(spr,0,"sprite1.png");
@DRAW:
Código: Selecionar todos
draw_sprite(spr,0,0,0); //Spr gerada através da surface
draw_sprite(sprite0,0,520,0);
draw_set_alpha(.65);
draw_sprite(sprite1,0,520,0);
draw_set_alpha(1);
EDIT: A imagem gerada pela surface esta quase transparente salvei como png e coloquei no photoshop deu pra perceber
PRINT:

Mesmo assim não identifiquei solução para o problema.