Como evitar o efeito flip nas animações dos sprites.

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

Resolvido Como evitar o efeito flip nas animações dos sprites.

Mensagem por Claudio Silva em Seg 31 Out 2011, 12:57

Boa tarde, eu sou um iniciante aqui na comunidade e gostaria de pedir auxilio aos usuários mais experientes...
Já estou criando meus joguinhos (bem básicos), e gostando dos resultados, exceto pelo efeito flip das animações dos sprites. O flit é aquela chata tremulação dos sprites, que em algumas linguagens de programação você resolve usando o backbuffer e frontbuffer. Os mais experientes vão saber que usar os buffers consiste em criar todos os desenhos no back antes de exibi-los no front, assim eliminando a tremulação.
Dá pra fazer algo semelhante no GM?
Desde já obrigado.

Claudio Silva

Número de Mensagens : 2
Data de inscrição : 31/10/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Como evitar o efeito flip nas animações dos sprites.

Mensagem por Markituh em Seg 31 Out 2011, 13:41

O Backbuffer no Game Maker é chamado de Surface. O FrontBuffer é o evento Draw de qualquer objeto. Mas nunca ouvi falar de flickering(esse é o termo correto) no Game Maker, pois se não me engano ele ja usa backbuffer internamente. Para usar surfaces é necessária a versão Pro (e não tem como fazer em DragnDrop, caso costume usá-lo):

No evento Create, crie o backbuffer;
Código:
// Os dois argumentos do surface_create é a largura e altura da surface.
buffer = surface_create(room_width, room_height);

// Agora vamos desenhar nela (você pode fazer isso a qualquer momento, em qualquer evento);
surface_set_target(buffer) // Assim indicamos que estamos trabalhando a nossa surface.
// Aqui você desenha qualquer coisa que você quer, por exemplo:
draw_circle(10, 10, 5, false); // Desenha um círculo com preenchimento(false) de raio 5 nas coordenadas 10, 10 da surface
surface_reset_target() // Assim indicamos que já terminamos o que tínhamos que fazer (atenção, essa parte é muito importante!).
Depois vamos no Draw para desenhar o backbuffer:
Código:
draw_surface(0, 0); // Como a surface é do tamanho da tela, é mais prudente deixar
seu ponto de origem no 0.
Fiz de cabeça, pq to sem o GM8 aqui, então não sei se as funções se escrevem realmente dessa forma. Qualquer coisa avisa

___________

"Não deixe para amanhã o que se pode fazer hoje"

Links úteis:
Índice de Tutoriais
Manual online do GMS

Markituh

Ranking : Sem avaliações
Número de Mensagens : 2183
Data de inscrição : 11/10/2009
Reputação : 106
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Resolvido Re: Como evitar o efeito flip nas animações dos sprites.

Mensagem por Claudio Silva em Seg 31 Out 2011, 13:57

Hmm, obrigado aí Markituh. Era exatamente o que eu tinha em dúvida. E sim, eu ainda estou na fase do DragnDrop, futuramente vou passar para a GML. Então a sua resposta já me auxilia em uma possível dúvida futura.
Obrigado.

Claudio Silva

Número de Mensagens : 2
Data de inscrição : 31/10/2011
Reputação : 1
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Resolvido Re: Como evitar o efeito flip nas animações dos sprites.

Mensagem por Conteúdo patrocinado Hoje à(s) 00:55


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