BlitzMax/Lições/Gráfico

Origem: Wikilivros, livros abertos por um mundo aberto.

Vamos agora iniciar a parte de preparação de gráfico para mostrar os comandos gráficos do BlitzMax.

Criando um gráfico[editar | editar código-fonte]

Para criar um gráfico iremos usar o comando Graphics que precisa de no mínimo 2 parâmetros, o primeiro é a largura e o segundo é a altura da tela. No final iremos fechar o gráfico com o comand EndGraphics

Graphics(800, 600)
EndGraphics

Vamos agora adicionar um comando adicional que é o depth que deverá sempre ser 0.

Graphics(800, 600, 0)
EndGraphics

O próximo comando é a frequência (hertz) do gráfico. É ele que determina quantos frames por segundo a aplicação terá.

Graphics(800, 600, 0, 60)
EndGraphics

Por último é o campo flag que deverá sempre ser 0.

Graphics(800, 600, 0, 60, 0)
EndGraphics

Criando um loop[editar | editar código-fonte]

Agora que criarmos um gráfico vimos que o que ele apenas faz é piscar na tela, para fazer o gráfico ficar funcionando continuamente precisamos criar um loop, nesse exemplo agora vamos criar um gráfico que irá sair só quando apertarmos a tecla Esc, para isso vamos criar um While-Wend.

Graphics(800, 600, 0, 60, 0)
    While(Not KeyHit(KEY_ESCAPE))
    Wend
EndGraphics

Desenhando algo na tela[editar | editar código-fonte]

Agora que já conseguimos fazer uma tela que fique constantemente ligada vamos colocar algo para ser exibido, para isso dentro do nosso loop vamos usar a função DrawRect como parâmetros vamos colocar: 1. o pixel X onde o retângulo vai ser desenhado, 2. o pixel Y onde o retângulo vai ser desenhado, 3. a largura do retângulo, 4. a altura do retângulo.


Graphics(800, 600, 0, 60, 0)
    While(Not KeyHit(KEY_ESCAPE))
        DrawRect(10, 20, 100, 200)
    Wend
EndGraphics

Agora precisamos descarregar do buffer o que foi desenhado (no caso, o nosso retângulo), para isso vamos usar a função Flip()

Graphics(800, 600, 0, 60, 0)
    While(Not KeyHit(KEY_ESCAPE))
        DrawRect(10, 20, 100, 200)
        Flip()
    Wend
EndGraphics

Atualizando a tela[editar | editar código-fonte]

Agora com o loop criado podemos acompanhar a atualização da nossa tela, para isso vamos criar uma variável e coloca-la como parâmetro no DrawRect.

Graphics(800, 600, 0, 60, 0)
    variavel% = 0
    While(Not KeyHit(KEY_ESCAPE))
        DrawRect(variavel, 20, 100, 200)
        Flip()
    Wend
EndGraphics

Agora vamos incrementa-la dentro do loop para o DrawRect ser desenhado em um local diferente.

Graphics(800, 600, 0, 60, 0)
    variavel% = 0
    While(Not KeyHit(KEY_ESCAPE))
        DrawRect(variavel, 20, 100, 200)
        variavel% = variavel% + 1
        Flip()
    Wend
EndGraphics

Se você colocou o programa para rodar deve ter notado que o retângulo deixou um rastro na tela, isso acontece porque o Flip() apenas desenha a imagem por cima da outra, se não quisermos ter esse problema deve-se limpar a tela antes de desenhar qualquer coisa, para isso usa-se a função Cls() (que vem de Clear Screen) que deve ser sempre a primeira a ser chamadano loop.

Graphics(800, 600, 0, 60, 0)
    variavel% = 0
    While(Not KeyHit(KEY_ESCAPE))
        Cls()
        DrawRect(variavel, 20, 100, 200)
        variavel% = variavel% + 1
        Flip()
    Wend
EndGraphics