Join Now
Quality Rating:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)
Expertise Level:
  • Currently 0.0 / 5
(0.0 / 5 - 0 votes cast)

This page was last modified 18:25, 26 November 2007.

Como desenvolver um jogo em Java ME - Parte 1

From Forum Nokia Wiki

Tradução do original How_to_develop_an_game_-_Part_1

Então você gostaria de desenvolver para seu telefone celular? Diga alô ao Java Micro Edition. Java ME combina uma JVM pequena e um conjunto de APIs Java para desenvolver aplicações em dispositivos móveis.

Este artigo é o primeiro de uma série onde iremos percorrer todos os caminhos básicos para desenvolver uma aplicação usando Java ME. O objetivo é desenvolver um pequeno clone do jogo Arkanoid (http://en.wikipedia.org/wiki/Arkanoid) e no processo aprender todas as bibliotecas, classes e métodos disponíveis.

Desta vez, após uma rápida introdução às ferramentas de desenvolvimento, farei um guia passo-a-passo sobre como criar sua primeira aplicação Java ME, também conhecida como MIDlet.

Ferramentas de desenvolvimento

O ambiente de desenvolvimendo que você usa tem um grande impacto na sua produtividade. Após testar várias IDEs e ambientes, gostaria de focar em duas opções

Ambas as IDEs são gratuitas e possuem uma forte comunidade por trás de seu desenvolvimento. Elas permitem que você faça todo o trabalho necessário ao desenvolvimento de aplicações móveis.

Netbeans é muito fácil de instalar e configurar e sua interface é mais intuitiva do que a do Eclipse, mas ele usa mais memória e tende a ficar mais lento à medida que seus projetos crescem de tamanho.

Eclipse é mais rápido e possui um footprint de memória menor, possui as mesmas features que o Netbeans mas a interface gráfica é mais complicada de usar e portanto requer mais trabalho para configurá-lo propriamente.

Então, qual a melhor opção para seu projeto? Se você já tem experiência com o Eclipse, seu menor uso de memória e velocidade são grandes vantagens, mas se você é iniciante com IDEs para Java, o Netbeans é a melhor opção para começar.

SDKs

Além da IDE com suporte à aplicações móveis em Java, você também precisa baixar e instalar um software especial chamado SDK (Software Development Kit), que basicamente contém todas as bibliotecas Java ME e permite simulação das aplicações no próprio PC, sem necessidade de ter um dispositivo à mão.

A Sun tem um SDK chamado Wireless Toolkit (WTK) que fornece todas as bibliotecas padrão. Eu normalmente uso este SDK para meus projetos, pois ele é muito rápido e possui várias outras ferramentas úteis (Network Monitor, Profiler, SMS Emulator), além de poder ser customizados para se parecer ou agir como outros modelos de telefone.

Além do WTK também é necessário ter os SDKs dos fabricantes para os quais você deseja desenvolver sua aplicação. Estes SDKs provêm acesso a bibliotecas especiais e também incluem software que permite que você instale suas aplicações em um telefone real.

Os SDKs do Forum Nokia para o desenvolvimento de aplicações móveis podem ser encontrados no link: http://www.forum.nokia.com/main/resources/tools_and_sdks/index.html#java

Seu primeiro midlet

Depois de instalar e configurar sua IDE Java e emuladores, é hora de começar a programar.

Todas as aplicações J2ME precisam estender a classe abstrata MIDlet, encontrada no pacote javax.microedition.midlet. O ponto de entrada da classe é o método startApp().

Vamos então criar nosso primeiro MIDlet, chamado MyMidlet.

public class MyMidlet extends MIDlet{
  // chamado quando a aplicação é iniciada e todas as vezes em que ela é continuada
  // depois do pauseApp
  protected void startApp() throws MIDletStateChangeException {}
 
  // chamado quando o MIDlet está para ser destruído
  protected void destroyApp(boolean uncondicional) throws MIDletStateChangeException {}
 
  // chamado quando o MIDlet está para ser pausado
  protected void pauseApp() {}
}

Se você criar esta classe, compilá-la e rodá-la no emulador, você terá uma fantástica tela branca!

Para mostrar conteúdo em sua aplicação você precisa usar a class Display. Esta classe controla o que aparece na tela de um MIDlet. Cada MIDlet tem um Display e pode acessá-lo usando o método estático Display.getDisplay(this)

Para mostrar algo na tela você precisa definir um objeto derivado de Displayable, usando o método setCurrent(). Uma das classes que implementa a interface Displayable é a classe Alert, que mostra uma mensagem na tela.

Com esta informação, vamos mudar nosso método startApp() para que ele faça algo mais útil:

Alert alert;
 
  //ponto de entrada
protected void startApp() throws MIDletStateChangeException {
  
  //cria um alerta
  alert = new Alert("Hello World");
 
  //mostra o alerta na tela.
  Display.getDisplay(this).setCurrent(alert);
}

Rodando seu midlet no emulador WTK, você terá o resultado mostrado na imagem abaixo:

Image:HelloScreenShot.png

Isso é um pouco melhor, mas você ainda não tem uma maneira de sair do seu MIDlet corretamente. Adicionando as seguintes linhas de código ao método startApp() cria um comando que permitirá a saída da aplicação:

// cria comando
comExit = new Command("Exit", Command.EXIT, 1);
// adiciona um comando para sair do Midlet
mainForm.addCommand(comExit);

Isto mostra o comando "Exit" na tela, mas se você clicar sobre ele, nada acontecerá, pois você ainda não adicionou o código necessário para reagir a comandos em seu MIDlet. Para tal, você precisa adicionar uma instância da classe CommandListener ao seu alerta, de modo que você possa tratar os comandos recebidos e seguir com as ações necessárias.

public class MyMidlet extends MIDlet implements CommandListener{
 
  public void startApp(){
    [...]
    // adiciona um listener de comandos ao alerta
    alert.setCommandListener(this);
  }
 
  public void commandAction(Command cmd, Displayable display) {
    // checa qual comando foi acionado
    if (cmd == comExit) {
      notifyDestroyed();
    }
  }
}

Com esta mudança finalmente temos um MIDlet completo e funcional.

Na próxima lição entraremos em mais detalhes sobre a interface gráfica e seus elementos, como Alert, Display e CommandListener. Usaremos esses elementos para definir um menu gráfico para nosso clone do Arkanoid.

Downloads:

Related Discussions
Thread Thread Starter Forum Replies Last Post
SymbianSDK, pJava, MIDP, EPOC32, VBasic, C++ juan_pons Mobile Java General 1 2002-12-02 08:03
How develop Java games on mobile phones? ericzutter Mobile Java General 4 2003-11-20 23:14
Emulator not appear walter73 Mobile Java Tools & SDKs 1 2005-01-07 19:26
S60 app:c++ -> java davidmaxwaterman Mobile Java General 5 2007-04-06 19:07
Using Java ntsing Mobile Java General 1 2002-10-09 07:12
 
Powered by MediaWiki
     
     RDF Facets:
     
     
     qfnZtypeQUqfnTypeZCommunityContentQ
     qfnZtypeQUqfnTypeZWebpageQ
     qfnZtypeQUqfnTypeZWikiContentQ
     qmarsZlanguageQUxhttpE3aE2fE2fswE2enokiaE2ecomE2flanguageE2d1E2fenX