Sistema de cores do GM

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Sistema de cores do GM

Mensagem por Luca$ em Ter 16 Out 2012, 15:28

Pelo oque me parece,o sistema de cores do GM é bem ruim,ou só oque parece.

Quando eu edito em qualquer editor,a mesma cor,eles sempre acham o mesmo valor de RGB.
Mas,quando eu checo uma cor pelo o GM,e seus valores RGB,ele me retorna outros valores.

O código que estou usando:
Código:

tesrt=draw_getpixel(1,1)
r=color_get_red(tesrt)
g=color_get_green(tesrt)
b=color_get_blue(tesrt)
show_message(r)
show_message(g)
show_message(b)

Fiz esse código só para testar o sistema de cores do GM.

Alguem sabe porque o GM mostra valores diferentes,ou se tem um jeito de evitar isso?

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sistema de cores do GM

Mensagem por Kabeção em Ter 16 Out 2012, 15:54

Note que o desenho na tela não acontece todo de uma vez só.
A engine interna percorre cada objeto, background e foreground de room e afins desenhando um de cada vez.

Então se você desenhar algo vermelho, usar draw_getpixel e depois desenhar algo cinza por cima, draw_getpixel retornara vermelho.
Código:
draw_set_color(c_red);
draw_rectangle(0,0,room_width,room_height,0);

draw_getpixel(1,1); // vermelho

draw_set_color(c_gray);
draw_rectangle(0,0,room_width,room_height,0);
Se você desenhar algo vermelho, depois desenhar algo cinza por cima e no fim usar draw_getpixel, agora sim retornara cinza.

Código:
draw_set_color(c_red);
draw_rectangle(0,0,room_width,room_height,0);

draw_set_color(c_gray);
draw_rectangle(0,0,room_width,room_height,0);

draw_getpixel(1,1); // cinza
Se usar draw_getpixel no evento create bem no começo do jogo vai retornar preto pois o evento Draw ainda não aconteceu e nada foi desenhando na tela.

Para capturar exatamente o que aparece depois de todo estar desenhado o ideal e usar essa função depois do evento Draw (Begin Step por exemplo).

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Sistema de cores do GM

Mensagem por Luca$ em Ter 16 Out 2012, 16:05

O pixel que estou pegando,é dentro de uma surface,olha o código todo:
Evento draw:
Código:

//== Pegar o arquivo ==//
mapad=get_open_filename("Arquivos .PNG|*.png*","");
if mapad!=""
{
MAPA_spr=sprite_add(mapad,0,0,0,0,0)

//== Configurações ==//
compr=sprite_get_width(MAPA_spr)
alt=sprite_get_height(MAPA_spr)

//== Surface ==//
MAPA=surface_create(compr,alt)
surface_set_target(MAPA)
draw_sprite(MAPA_spr,0,0,0)

//== Desenhar ==//

for (i=0; i<compr; i+=1)
{
    for (a=0; a<alt; a+=1)
    {
        CORi=draw_getpixel(i,a)
        r=color_get_red(CORi)
        g=color_get_green(CORi)
        b=color_get_blue(CORi)
        COR=make_color_rgb(r,g,b)
        block=pix_bloco()
        surface_reset_target()
        surface_set_target(global.mapa)
        draw_sprite(blocos,block,i*16,a*16)

    };
   
};
}
tesrt=draw_getpixel(1,1)
r=color_get_red(tesrt)
g=color_get_green(tesrt)
b=color_get_blue(tesrt)
show_message(r)
show_message(g)
show_message(b)
//== Resetando a surface para não ocorrer possiveis bugs ==//
surface_reset_target()

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sistema de cores do GM

Mensagem por Jiraya em Ter 16 Out 2012, 16:34

nossa você fez uma mega confusão na hora de apontar as surfaces...
tente isso
Código:

//== Pegar o arquivo ==//
mapad=get_open_filename("Arquivos .PNG|*.png*","");
if mapad!=""
{
MAPA_spr=sprite_add(mapad,0,0,0,0,0)

//== Configurações ==//
compr=sprite_get_width(MAPA_spr)
alt=sprite_get_height(MAPA_spr)

//== Surface ==//
MAPA=surface_create(compr,alt)
surface_set_target(MAPA)
draw_sprite(MAPA_spr,0,0,0)
surface_reset_target();
//== Desenhar ==//
surface_set_target(global.mapa)
for (i=0; i<compr; i+=1)
{
    for (a=0; a<alt; a+=1)
    {
        CORi=surface_getpixel(MAPA,i,a)
        r=color_get_red(CORi)
        g=color_get_green(CORi)
        b=color_get_blue(CORi)
        COR=make_color_rgb(r,g,b)
        block=pix_bloco()
        draw_sprite(blocos,block,i*16,a*16)

    };
   
};
}
surface_reset_target();
tesrt=draw_getpixel(1,1)
r=color_get_red(tesrt)
g=color_get_green(tesrt)
b=color_get_blue(tesrt)
show_message(r)
show_message(g)
show_message(b)
//== Resetando a surface para não ocorrer possiveis bugs ==//

Jiraya

Ranking : Nota A
Número de Mensagens : 1134
Data de inscrição : 20/03/2010
Notas recebidas : A+A
Reputação : 108
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 1

https://www.facebook.com/seito.washiro.7

Voltar ao Topo Ir em baixo

Re: Sistema de cores do GM

Mensagem por Kabeção em Ter 16 Out 2012, 16:40

draw_getpixel só pega a tela principal, ou seja, não captura o que esta em uma surface até mesmo porque ela nem esta desenhada na tela ainda.
Até a parte do "tesrt=draw_getpixel(1,1)" você esta desenhando na surface e não na tela.

Você deve usar draw_surface antes da função.
Para esse caso é melhor o surface_getpixel já que captura direto da surface.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Sistema de cores do GM

Mensagem por Luca$ em Ter 16 Out 2012, 16:42

Nossa,valeu Jiraya e Kabeção Smile

Seu código funcionou perfeitamente Jiraya,acho que o problema,era que eu estava tentando pegar o pixel no draw,e nao na surface,certo?

Pra falar verdade,essa ajuda de vocês me deu uma enorme vontade de continuar o projeto,pois eu já estava pensando em abandona-lo... :S

Luca$

Ranking : Nota D
Número de Mensagens : 582
Data de inscrição : 10/10/2010
Notas recebidas : D-C
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sistema de cores do GM

Mensagem por Conteúdo patrocinado Hoje à(s) 16:30


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum