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
» Pokémon Genesis Online! (PGO)
Qua 05 Jul 2017, 17:08 por Lexar

» Tileset Converter to MV
Sex 12 Maio 2017, 13:07 por Douggi

» [Dúvida] Como tirar a porcentagem de esquiva
Ter 09 Maio 2017, 22:15 por Neil Flame Runner

» Pack Resources, Sprites e etc
Qua 23 Dez 2015, 09:30 por raydengv

» Download RPG Maker 2003 + RTP em português
Ter 22 Dez 2015, 08:14 por ::KimMax::

» Fantasy Art Online
Dom 18 Out 2015, 16:42 por daviih123

» Você vai ter medo do Nerve gear?
Sab 25 Jul 2015, 16:02 por Kirito-kun

» O Barato é louco
Sab 27 Jun 2015, 15:26 por Halt

» Download RPG Maker 2000 + RTP em português
Qui 21 Maio 2015, 19:28 por Wismael

» Divulgando meu grupo e página do Facebook
Ter 19 Maio 2015, 13:06 por Halt


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

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

Halt

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



Vamos inicializar pegando o tamanho do Form no evento Form_Load.



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 :




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

[Você precisa estar registrado e conectado para ver este link.]


__________________________________________
[Você precisa estar registrado e conectado para ver este link.]
Ei Convidado, sim você mesmo! Ajude o fórum à crescer postando coisas úteis, dê sugestões para melhorar-mos e divulgue o fórum.

Step inside, see the devil in I.

Gifts-
[Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.] - [Você precisa estar registrado e conectado para ver este link.]

Zerei a internet
Ver perfil do usuário http://arenarpgmaker.eclipserpg.com

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

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