Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker
Olá, visitante!
Seja bem-vindo ao fórum Arena RPG Maker, caso queira aprender sobre criação de jogos, está no fórum certo. Esperamos que possa aprender tanto quanto possa nos ensinar aqui.

Atenciosamente,
Equipe Arena RPG Maker.
Arena RPG Maker

Estamos de volta o/ ... Ou não.Eu amo a -Dark
Doações para o fórum abertas, clique aqui e saiba mais.
Últimos assuntos
» Ainda temos gente aqui?
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptyQui 25 Nov 2021, 14:04 por Halt

» [Dúvida] Como tirar a porcentagem de esquiva
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptySex 19 Nov 2021, 17:14 por Halt

» Pokémon Genesis Online! (PGO)
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptyQua 05 Jul 2017, 18:08 por Lexar

» Tileset Converter to MV
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptySex 12 maio 2017, 14:07 por Douggi

» Pack Resources, Sprites e etc
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptyQua 23 Dez 2015, 12:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptyTer 22 Dez 2015, 11:14 por ::KimMax::

» Fantasy Art Online
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptyDom 18 Out 2015, 18:42 por daviih123

» Você vai ter medo do Nerve gear?
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptySáb 25 Jul 2015, 17:02 por Kirito-kun

» O Barato é louco
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptySáb 27 Jun 2015, 16:26 por Halt

» Download RPG Maker 2000 + RTP em português
Jogos - Criando jogos em VB.NET - Técnica BackBuffer EmptyQui 21 maio 2015, 20:28 por Wismael


Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

Halt

Halt
Administrador
Administrador
Nadaila escreveu: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.

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

Vamos inicializar pegando o tamanho do Form no evento Form_Load.

Jogos - 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 :

Jogos - 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.

Resultado

https://arenarpgmaker.forumeiros.com

Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

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