Este é um post disponível para assinantes MVPJogo 2D com rolagem de mapa - Revista Mobile Magazine 40
Neste artigo será apresentada a construção de um jogo 2D de rolagem de mapa. Mostraremos de forma prática e passo a passo os conceitos relacionados ao sistema Android para este tipo de jogo.
[Artigo já está disponível no Leitor Digital DevMedia®. Clique aqui para acessá-lo]
> Clique aqui para ler todos os artigos da Mobile magazine 40
O mercado móvel está em expansão e hoje podemos encontrar vários dispositivos com Android, facilitando assim a sua disseminação. Além disso, a plataforma Android é livre e tem seu código fonte liberado, assim como um SDK que possui um emulador, facilitando o desenvolvimento.
Recentemente, os jogos para celulares ganharam popularidade por fornecer o entretenimento pessoal móvel. Esta popularidade faz com que os jogos desempenhem um papel fundamental na geração de renda para as operadoras de celulares, desenvolvedores de jogos e fabricantes de aparelhos telefônicos.
O desenvolvimento de jogos faz uso de vários conceitos simples mas interessantes de serem conhecidos por aqueles que pretendem entrar neste mercado. Dessa forma, relembrando alguns conceitos apresentados em artigos anteriores, vamos retomar aqui algumas definições que considero muito importantes:
· Curva de aprendizagem: é o tempo que um jogador necessita para assimilar os comandos e as regras do jogo.
· Sprite: é um elemento básico visual que pode ser renderizado a partir de um ou vários frames de uma imagem. Estes vários frames podem ser utilizados para fazer a animação do sprite. Normalmente corresponde a um objeto na tela do jogo, como um inimigo, o personagem principal, ou um tiro.
· FPS (frames per second): significa quadros por segundo. Define quantos quadros são mostrados ao usuário em um segundo de jogo. Para jogos em celulares, o mínimo aceitável são 10 quadros por segundo. Quanto maior a quantidade de quadros por segundo, maior é o processamento requerido.
· Turno de jogo: conjunto de atividades que o jogo faz a cada frame de jogo. Entre atividades típicas, estão repintar a tela, verificar os pontos do jogador ou colisões entre os sprites.
Associado a estes conceitos, é importante também relembrarmos que o desenvolvimento de jogos passa por várias etapas, e algumas delas são:
· Game Design: é a etapa onde o jogo é criado com suas idéias, personagens e estória, ou seja, é a concepção propriamente dita;
· Rascunho dos objetos e cenários: é a etapa do processo que auxilia os modeladores a criarem o mundo do jogo.
· Modelagem: é a etapa onde serão criados modelos e texturas utilizados no jogo.
· Engenharia de Software: etapa onde é feita a modelagem do sistema
· Programação: etapa onde o jogo é de fato codificado.
Este artigo abordará apenas a etapa da programação. Iremos desenvolver um pequeno esboço de framework para o funcionamento e controle do jogo. Neste contexto, neste tutorial desenvolveremos um jogo 2D de rolagem de mapa. Mostraremos de forma prática e passo a passo os conceitos relacionados ao sistema Android para este tipo de jogo.
Entretanto, antes de iniciarmos o desenvolvimento do jogo propriamente dito, devemos configurar o ambiente de desenvolvimento. O Android Development Tools (ADT) trata-se de um plugin para o eclipse que facilita a criação rápida de novos projetos Android. Ele possibilita a criação de interfaces de usuário, adicionar componentes, depurar aplicações utilizando as ferramentas do SDK android e exportar os .apk (assinados ou não).
Em geral, usar o Eclipse com o ADT é a forma mais recomendada de desenvolver aplicações Android e o jeito mais rápido de começar. Se você usa Eclipse, o plugin ADT lhe fornecerá um bom começo no desenvolvimento de aplicações Android.
Sendo assim, nosso primeiro passo é instalar o SDK do Android e o plugin ADT no Eclipse. Iremos precisar deles para construir o nosso jogo e você pode fazer isto baixando o SDK através do site http://developer.android.com/sdk/index.html.
Uma vez que você tenha o SDK e o ADT plugin instalado, é hora de configurar o nosso projeto. Para isso, abra o Eclipse, vá em Window> Android SDK e AVD Manager, clique em virtual devices e verifique se existe ao menos um dispositivo virtual configurado. Se não houver, conforme mostra a Figura 1, dê um clique no botão New, preencha o campo Name com um nome sugestivo, adicione-o selecionando o target Android 2.1 - API level 7, se necessário informe o tamanho do SD Card a ser criado, se for necessário capturar telas do aplicativo, deixe a opção Snapshot selecionada. Pode-se também escolher ou definir as propriedades de resolução do Skin, assim como também acrescentar características de hardware, tais como acelerômetro, gravar áudio, gps e outros. Feito isto, clique no botão Create AVD para criar o dispositivo virtual que irá rodar a aplicação de acordo com a Figura 2.
Criando um jogo baseado em mapas
Em um jogo 2D, o mapa de um nível inteiro, ou o mapa do jogo, é formado por várias telas de largura. Alguns chegam a ter mais de 50 telas de largura, e como o personagem anda pela tela, o mapa faz a rolagem.
Criar uma imagem contendo todo o mapa não é uma boa solução principalmente se levarmos em conta a memória necessária para carregar o mapa. Uma grande imagem não define sozinha onde o jogador pode ou não caminhar, ou mesmo quais partes da mesma possuem movimento ou ações próprias. Assim, em vez de utilizarmos uma grande imagem, iremos criar pequenas células de imagens e exibi-las à medida que o usuário for se deslocando dentro do mapa, como mostrado na Figura 3. Cada célula da grade contém uma imagem.
Utilizar um mapa a base de células é como brincar com blocos de lego. Apenas alguns blocos de cores diferentes são usados, mas você tem uma quantidade ilimitada de cada cor e a imaginação é o limite.
O mapa de células contém as referências de qual imagem pertence a cada célula do gride. Desta forma, você só precisa de algumas imagens pequenas para as células e pode fazer os mapas tão grande quanto você quiser sem se preocupar muito com as restrições de memória.
Na maioria das vezes, o tamanho de cada imagem é derivado de uma potência de 2, como 16, 32 ou 64. Neste jogo, iremos utilizar o tamanho do bloco de 32x32. A Figura 4 apresenta os blocos que serão utilizados.
Na Listagem 1, podemos ver como o mapa foi declarado e entender melhor o significado da substituição de cada caractere por uma imagem correspondente. Perceba que cada caracteres apresentado no mapa corresponde a um tipo de imagem. Perceba também que esta solução nos traz um bom nível de escalabilidade uma vez que não necessitaremos armazenar todo o mapa no celular, mas apenas os diferentes tipos de imagens. Estas serão apresentadas à medida que o usuário se descola pela tela do celular considerando a distribuição definida na Listagem 1.
Listagem 1. Declaração do mapa de caracteres
String[][] mapa = { {
"VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV""
ATENÇÃO! A exibição deste artigo foi interrompida.
Este é um post disponível para assinantes MVP
3 COMENTÁRIOS
Mas obrigado pela obervação.
Um abraço.
Space do autor


0
0
