Criando jogos em VB.NET - Técnica BackBuffer Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

Aldeia RPG
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Criando jogos em VB.NET - Técnica BackBuffer

Ir para baixo

Criando jogos em VB.NET - Técnica BackBuffer Empty Criando jogos em VB.NET - Técnica BackBuffer

Mensagem por DragonicK Qua Jan 25, 2012 10:07 pm

Na aula passada vimos que, quando adicionado um Loop para desenhar o jogo o Form fica piscando. Isso se deve, pois estamos vendo o computador apagando o desenho. Primeiro ele desenha todas as sprites e animaçãoes, e depois ele limpa tudo e desenha novamente.

O que devemos fazer?
Não devemos desenhar direto no form, desenhamos tudo em um bitmap na memória e, depois de feito isso desenharemos esse bitmap no Form. Essa técnica se denomina BackBuffer.

Sem longas palavras e vamos começar. Adicione uma variável com o nome de BackBuffer e do tipo bitmap.

Criando jogos em VB.NET - Técnica BackBuffer Backbuffer

Vamos inicializar pegando o tamanho do Form no evento Form_Load.

Criando jogos em VB.NET - Técnica BackBuffer Initbackbuf

A linha abaixo já pode ser apagada.
g = Me.CreateGraphics

Lembre-se esse bitmap que acabamos de criar não há imagem alguma, ele é apenas do tamanho do form.

Observe a imagem abaixo e veja o que mudou :

Criando jogos em VB.NET - Técnica BackBuffer Backgamel


' Indico que g irá desenhar em BackBuffer.
g = Graphics.FromImage(BackBuffer)

' g agora está para BackBuffer, então limpa o bitmap com preto.
g.Clear(Color.Teal)

' Desenha todas as imagens normalmente, mas dessa vez no buffer.

'Terminado de desenhar, libera g do bitmap e encerra g.
g.Dispose()

' Agora indico que g irá desenhar no Form.
g = Me.CreateGraphics

' Desenho a imagem BackBuffer no form, coordenada 0,0.
g.DrawImage(BackBuffer, 0, 0)

'Terminado de desenhar, libera g do form e encerra g.
g.Dispose()

Pronto, fácil de entender!

Primeiro desenhamos os personagens,tiles, animações na memória, em um bitmap.
Depois de tudo pronto, desenhamos esse bitmap no form. Desenhar em um BackBuffer é considerável mais rápido que desenhar em uma superfície visível e isso vai permitir seu GDI+ correr mais rápido. Essa é a técnica de buffer.

Aquilo que ocorreu com o form piscando é chamado de Flicker (Tremulação).

Agora dê um Play e veja o resultado.

[URL=http://www.4shared.com/rar/X4fVFVcS/Game_Project_-_mmorpgbr_-_07.html[/URL]
DragonicK
DragonicK
Experiente
Experiente

Mensagens : 543
Créditos : 81

Ficha do personagem
Nível: 1
Experiência:
Criando jogos em VB.NET - Técnica BackBuffer Left_bar_bleue0/0Criando jogos em VB.NET - Técnica BackBuffer Empty_bar_bleue  (0/0)
Vida:
Criando jogos em VB.NET - Técnica BackBuffer Left_bar_bleue30/30Criando jogos em VB.NET - Técnica BackBuffer Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos