Esse artigo faz parte da revista Clube Delphi Edição 59. Clique aqui para ler todos os artigos desta edição

Games

Parte II-  Programação RAD de jogos em Delphi

 

Continuando nosso trabalho com desenvolvimento de jogos iniciado na edição 58, vamos focar agora o conceito RAD mencionado no artigo anterior. Pretendo explicar detalhadamente o funcionamento dos componentes GameDev. Vamos

viajar através de programas que são na realidade mini-exemplos para a criação de seus jogos.Ao final das etapas você poderá juntar todos os conhecimentos adquiridos e desenvolver seu próprio jogo com o GameDev,em tempo recorde. Está preparado para encarar o desafio? Então vamos nessa!

 

Conhecendo o GameDev

O GameDev é um pacote de componentes que facilita as rotinas mais utilizadas no desenvolvimento de jogos. Ele pode ser definido como um Engine, usando técnicas RAD para a criação de jogos e com alta qualidade de código, sem precisar descer aos níveis mais baixos de programação.

Ele incorpora diversos conceitos e fundamentos do desenvolvimento de jogos com alta performance, dando uma interface fácil e organizada para o programador criar o jogo, que pode agora se preocupar mais com as "regras do negócio" e não com a infra-estrutura da aplicação.

O GameDev utiliza o espaço abstrato de desenho Canvas junto com uma série de outras técnicas, como Threadse Usts, para suportar os jogos mais exigentes e complicados. Seus componentes implementam diversas funcionalidades por meio de propriedades e eventos, permitindo a total abstração dos complicados algoritmos internos.

O framework é desenvolvido 100%em Delphi, por isso não precisa de nenhuma biblioteca externa, como arquivos DLL ou de qualquer outro framework para funcionar. Isso também garante 100%de compatibilidade com qualquer componente da VCL. A seguir veremos em detalhes os componentes do GameDev.

 

GameScreen

Componente principal do Engine. Principais funcionalidades:

 

.Representa a área de impressão das imagens em memória;

.Loop principal através de Thread;

.Ajuste de velocidade de atualização de tela através de RefreshRate;

.Evita o efeito FIicker através de DoubleBuffering;

.Organiza todo o código por meio de eventos;

.Retoma para o ClockMove o TimeElapsed entre as iterações do Loop;

.Permite ajustar o timer do jogo através de contagem progressiva e regressiva;

.Exporta várias rotinas do Canvas para procedimentos mais exigentes.

 

GameImage

Componente "ator" doEngine. Principais funcionalidades:

.Representa o Sprite do Engine;

.Armazena diversas informações de "estado" sobre uma imagem;

.Permite manipular a imagem de várias maneiras sobre a tela;

.Disponibiliza o evento OnColision para os tratamentos de colisão;

.Permite referenciar diversas imagens através de suas propriedades ActiveSlot e ImageIndex;

...

Quer ler esse conteúdo completo? Tenha acesso completo