Criando jogos em VB.NET - GameLoop 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 - GameLoop

Ir para baixo

Criando jogos em VB.NET - GameLoop Empty Criando jogos em VB.NET - GameLoop

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

Nossas imagens são desenhadas na Form, por nossa vontade. Isso só acontece quando realizamo um evento, um pressionamento de qualquer tecla.

Adicione uma variável GameRunning do tipo boelana. Ela indicará se nosso jogo está vivo ou não.

Criando jogos em VB.NET - GameLoop Gamerunning

Embaixo do último DesenharImagem, adicione a seguinte sub:

Criando jogos em VB.NET - GameLoop Gameloop

While GameRunning 'enquanto GameRunning for verdadeira, repita
'Desenhar Imagens
Application.DoEvents ' Faça com eventos

A DoEvents serve para processar os eventos pendentes do sistema. Sem isso, cada vez que o GameLoop é executado o programa é travado até que ele termine todo o loop. Quando terminado ele voltaria a responder aos eventos normalmente.

Alterando o Form_Load

Criando jogos em VB.NET - GameLoop Formloadgm

Quando o programa terminar de carregar as imagens, mudará a variável GameRunning para True, mostrará o form e irá inciar o GameLoop.

Me.Show
Isso é para ter certeza de que o Form será mostrado.

Vamos ao evento KeyDown e recorte a parte de desenho dessa sub e cole aqui no meio.

Criando jogos em VB.NET - GameLoop Gameloopdraw

Quando a variável GameRunning for falsa, a sub GameLoop perderá o ciclo e irá diretamente para abaixo fechando o jogo.

g.Dispose
Application.Exit

Agora dê um Play e veja ... Sim, o Form inteiro fica piscando, só vou explicar isso na próxima aula.

Abra o gerenciador de tarefas e olhe o processo do aplicativo.

Criando jogos em VB.NET - GameLoop Geren

O aplicativo usa 50% da CPU, um jogo tão pequenino e simples não precisa usar tudo isso de processamento.

Embaixo de DoEvents, vamos adicionar um Sleep(20).

Criando jogos em VB.NET - GameLoop Sleepwh

Isso fará com que o programa durma, por 20 milésimos de segundos. Esses milésimos pode parecer pouco mas não é. Observe agora a foto abaixo

Criando jogos em VB.NET - GameLoop Geren2

Sim isso ajuda muito. Mas minha form ainda não pára de piscar, a animação do fogo corre que nem o satanas, por que?
R : ...

Putz.. quase esqueci, volte ao evento KeyDown e adicione:

Criando jogos em VB.NET - GameLoop Breakloop

Quando a tecla Esc(Escape) for pressionada muda o GameRunning para False finalizando o aplicativo. Este é o modo correto de se quebrar o GameLoop, caso você feche pelo X do form, ele irá apenas sumir visivelmente e ficará ainda preso na memória.

Projeto Aula
DragonicK
DragonicK
Experiente
Experiente

Mensagens : 543
Créditos : 81

Ficha do personagem
Nível: 1
Experiência:
Criando jogos em VB.NET - GameLoop Left_bar_bleue0/0Criando jogos em VB.NET - GameLoop Empty_bar_bleue  (0/0)
Vida:
Criando jogos em VB.NET - GameLoop Left_bar_bleue30/30Criando jogos em VB.NET - GameLoop 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