Aldeia RPG

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

Suporte ao desenvolvimento de jogos


    Criando jogos em VB.NET - GameLoop

    DragonicK
    DragonicK
    Experiente
    Experiente


    Mensagens : 542
    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)

    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

      Data/hora atual: Qui maio 02, 2024 8:52 am