UniDev - Programação de Jogos • Ver Tópico - Pages Flip em Allegro
[ Data/Hora: 21 Mai 2013, 06:53 ]
Pages Flip em Allegro
Assunto da Mensagem: Pages Flip em AllegroEnviado: 27 Nov 2002, 17:51 Membro Sênior
Registado: 14 Nov 2002, 14:21Mensagens: 304Localização: Brasil	Alohhhaaaaaa galera...
Sabe... tinha uma duvida sobre como mudar e atualizar a tela sem que parecesse que esta tremendo eu usava Dpuble-Buffer mais o Double-Buffer faz a tela tremer um pouco caso vocë mova a imagem mais que 6 pixels com uma velocidade instalada de 40... na funcao install_int(xxxxxxx, 40)... mais descobri uma tecnica chamada Pages Flip... que ajuada um pouco tava vendo... nos exemplos da allegro e achei isto... achei tambem algo sobre Tripli-Buffer... bem eu acho que se mudando o numero de Pages tipo 4 ou 5 pu 6.... emfim se consegue um resulrtado melhor... bem... eu gostaria que vcs me falassem... se isso e verdade... quantos mais Pages melhor ou tem um numero maximo de Pages...
Assunto da Mensagem: Enviado: 03 Dez 2002, 17:55 Moderador(a)
Registado: 01 Dez 2002, 15:37Mensagens: 1444Localização: Chicago, USA	Não faz sentido voce se movimentar mais de 10 pixels e dar flickering e se movimentar 6 e nao dar.
O que vc tem que fazer é montar uma pagina em um backbuffer e depois dar o flip com a pagina atual. O mesmo para a pagina seguinte, e faca isos com todas as paginas que forem exibidas, e nao esqueca de aguardar a incronização do video. isso pode ser um dos motivos do flickering que esta aontecendo.
Assunto da Mensagem: Enviado: 03 Dez 2002, 19:19 Colaborador(a)
Registado: 04 Set 2002, 16:56Mensagens: 183Localização: Brasil	<BLOCKQUOTE id=quote><font size=1 face=\"Verdana, Arial, Helvetica\" id=quote>citação:<hr height=1 noshade id=quote>
Não faz sentido voce se movimentar mais de 10 pixels e dar flickering e se movimentar 6 e nao dar.
<hr height=1 noshade id=quote></BLOCKQUOTE id=quote></font id=quote><font face=\"Verdana, Arial, Helvetica\" size=2 id=quote>
Como disse, não há absolutamente nada de errado com o Double Buffering. Leia meu outro post para mais detalhes.
Tem como você postar o executável e o source?
Aliás, agora que percebi: você está usando a função install_int? Por isso... Essa função instala o timer determinando um intervalo de 40 milisegundos em cada incremento.
Tente install_int_ex(void (*funcao_incremento)(), BPS_TO_TIMER(40)), ao invés. Essa função irá rodar a função de incremento 40 vezes por segundo, sendo muito mais fácil de se trabalhar com as rotinas do timer (e muito mais seguro).