Desenvolvimento
de Jogos
Aula 1
Desenvolvimento de Jogos para Celulares e Tablets em Android
Introdução ao Desenvolvimento de Jogos em Android
Implementando Física em Jogos com Android
Disponibilizando o Jogo para o Mundo
Interatividade nos Jogos
Montando o seu Jogo de Sucesso em Android
‘Se o Google fizer tudo certo, haverá um
Android em cada bolso’
Eric Schmidt
ex-CEO da Google Inc
Fundada em 2003 em Palo Alto a empresa Android Inc.
Dois anos depois adquirida pelo Google.
Atualmente possui uma vasta comunidade de programadores, com milhões de
Apps.
1.5: Cupcake (Abril de 2009)
1.6: Donut (Setembro de 2009)
2.1: Eclair (Janeiro de 2010)
2.2: FroYo (Frozen Yogourt - Maio de 2010)
2.3-2.4: Gingerbread (versão atual em dezembro de 2010)
3.0-3.2: Honeycomb (Lançada para tablets em Janeiro de 2011)
4.0: Ice Cream Sandwich (Anunciada em 19 de outubro de 2011)
Fundada em 2003 em Palo Alto a empresa Android Inc.
Dois anos depois adquirida pelo Google.
Atualmente possui uma vasta comunidade de programadores, com milhões de
Apps.
1.5: Cupcake (Abril de 2009)
1.6: Donut (Setembro de 2009)
2.1: Eclair (Janeiro de 2010)
2.2: FroYo (Frozen Yogourt - Maio de 2010)
2.3-2.4: Gingerbread (versão atual em dezembro de 2010)
3.0-3.2: Honeycomb (Lançada para tablets em Janeiro de 2011)
4.0: Ice Cream Sandwich (Anunciada em 19 de outubro de 2011)
"Um dos melhores jogos AndEngine!"
PRINCIPAIS CARACTERÍSTICAS:
✓ 178 níveisdesafiadores!
Diferentes tipos de ✓ 7bugs!
✓ Atenção: extremamenteviciante!
✓ gráficos delicioso eengraçado.
✓ Mais cenários eníveis em breve!
Alimentado por AndEngine -
andengine.org
Otimizado XPERIA PLAY.
Torne-se fã de aranhas Greedy no
Facebook
http://facebook.greedyspiders.com
Exemplo 1 – em www.grupoalves.net/startAndroidArquivos
package com.aula1;
+ import .... (bibliotecas)
public class MainActivity extends BaseGameActivity{
//Definição do tamanho da tela
private static final int CAMERA_WIDTH = 720;
private static final int CAMERA_HEIGHT = 480;
private Camera mCamera;//o membro para definir os detalhes da tela
private BitmapTextureAtlas mBitmapTextureAtlas;//o bitmap que receberá o Sprite
private TextureRegion mFaceTextureRegion;//o Sprite em si.
public Engine onLoadEngine() {
this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new Ratio
ResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
}
public void onLoadResources() {
//Cria um Bitmap de 32x32 2D, caso tenha pego algum Sprite diferen
te, altere para os detalhes do seu Sprite
//this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, Textur
eOptions.BILINEAR_PREMULTIPLYALPHA);
this.mBitmapTextureAtlas = new BitmapTextureAtlas(128,
128, TextureOptions.NEAREST_PREMULTIPLYALPHA);
//Seta para buscar o Sprite do gfx dentro da Assets
BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
//Le o Sprite “start_box.png”
//this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFact
ory.createFromAsset(this.mBitmapTextureAtlas, this, “start_box.png", 0, 0
);
this.mEngine.getTextureManager().loadTexture(this.mBitmapTexture
Atlas);
//createSpriteSpawnTimeHandler();
}
public Scene onLoadScene() {
this.mEngine.registerUpdateHandler(new FPSLogger());
final Scene scene = new Scene(1);
scene.setBackground(new ColorBackground(0.0f, 0.0f, 0.0f)); //preto
scene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f))
; //azul claro
//createSprite(scene);
createSpriteSpawnTimeHandler();
scene.setTouchAreaBindingEnabled(true);
return scene;
}
@Override
public void onLoadComplete() {
// TODO Auto-generated method stub
}
@SuppressWarnings("unused")
private void createSprite(Scene scene) {
final MySprite sprite = new MySprite(100, 100, this.mFaceTextureRegion);
scene.registerTouchArea(sprite);
scene.attachChild(sprite);
}
private void createSprite(float X, float Y) {
final MySprite sprite = new MySprite(X, Y, this.mFaceTextureRegion);
this.mEngine.getScene().registerTouchArea(sprite);
this.mEngine.getScene().attachChild(sprite);
}
private void createSpriteSpawnTimeHandler()
{
//Quantidade de segundos que a função será chamada
final float seconds = 3f;
//registra um Handle para ser chamado a cada intevalo de tempo, passa uma instancia da interface ITi
merCallback, implementando o método onTimePassed
this.getEngine().registerUpdateHandler(new TimerHandler(seconds, new ITimerCallback(){
public void onTimePassed(final TimerHandler pTimerHandler){
pTimerHandler.reset(); //aparecer vários na tela habilite aqui
//Gera posições randômicas para gerar o Sprite, usa o fator de ajuste para não criar o Sprite
fora da tela
final float fatorDeAjuste = 30f;
final float xPos = MathUtils.random(fatorDeAjuste, (CAMERA_WIDTH - fatorDeAjuste));
final float yPos = MathUtils.random(fatorDeAjuste, (CAMERA_HEIGHT - fatorDeAjuste));
createSprite(xPos, yPos);
}
}));
}
}
Exemplo 2 – em www.grupoalves.net/startAndroidArquivos
Exemplo Online – em www.grupoalves.net/startAndroidArquivos
Meu texto aqui!
Aula 2
Implementando Física em Jogos com Android
Próxima Aula....

StartGames Android aula 1

  • 1.
  • 2.
    Desenvolvimento de Jogospara Celulares e Tablets em Android Introdução ao Desenvolvimento de Jogos em Android Implementando Física em Jogos com Android Disponibilizando o Jogo para o Mundo Interatividade nos Jogos Montando o seu Jogo de Sucesso em Android
  • 3.
    ‘Se o Googlefizer tudo certo, haverá um Android em cada bolso’ Eric Schmidt ex-CEO da Google Inc
  • 4.
    Fundada em 2003em Palo Alto a empresa Android Inc. Dois anos depois adquirida pelo Google. Atualmente possui uma vasta comunidade de programadores, com milhões de Apps. 1.5: Cupcake (Abril de 2009) 1.6: Donut (Setembro de 2009) 2.1: Eclair (Janeiro de 2010) 2.2: FroYo (Frozen Yogourt - Maio de 2010) 2.3-2.4: Gingerbread (versão atual em dezembro de 2010) 3.0-3.2: Honeycomb (Lançada para tablets em Janeiro de 2011) 4.0: Ice Cream Sandwich (Anunciada em 19 de outubro de 2011)
  • 5.
    Fundada em 2003em Palo Alto a empresa Android Inc. Dois anos depois adquirida pelo Google. Atualmente possui uma vasta comunidade de programadores, com milhões de Apps. 1.5: Cupcake (Abril de 2009) 1.6: Donut (Setembro de 2009) 2.1: Eclair (Janeiro de 2010) 2.2: FroYo (Frozen Yogourt - Maio de 2010) 2.3-2.4: Gingerbread (versão atual em dezembro de 2010) 3.0-3.2: Honeycomb (Lançada para tablets em Janeiro de 2011) 4.0: Ice Cream Sandwich (Anunciada em 19 de outubro de 2011)
  • 13.
    "Um dos melhoresjogos AndEngine!" PRINCIPAIS CARACTERÍSTICAS: ✓ 178 níveisdesafiadores! Diferentes tipos de ✓ 7bugs! ✓ Atenção: extremamenteviciante! ✓ gráficos delicioso eengraçado. ✓ Mais cenários eníveis em breve! Alimentado por AndEngine - andengine.org Otimizado XPERIA PLAY. Torne-se fã de aranhas Greedy no Facebook http://facebook.greedyspiders.com
  • 15.
    Exemplo 1 –em www.grupoalves.net/startAndroidArquivos
  • 16.
    package com.aula1; + import.... (bibliotecas) public class MainActivity extends BaseGameActivity{ //Definição do tamanho da tela private static final int CAMERA_WIDTH = 720; private static final int CAMERA_HEIGHT = 480; private Camera mCamera;//o membro para definir os detalhes da tela private BitmapTextureAtlas mBitmapTextureAtlas;//o bitmap que receberá o Sprite private TextureRegion mFaceTextureRegion;//o Sprite em si. public Engine onLoadEngine() { this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT); return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new Ratio ResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera)); }
  • 17.
    public void onLoadResources(){ //Cria um Bitmap de 32x32 2D, caso tenha pego algum Sprite diferen te, altere para os detalhes do seu Sprite //this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, Textur eOptions.BILINEAR_PREMULTIPLYALPHA); this.mBitmapTextureAtlas = new BitmapTextureAtlas(128, 128, TextureOptions.NEAREST_PREMULTIPLYALPHA); //Seta para buscar o Sprite do gfx dentro da Assets BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/"); //Le o Sprite “start_box.png” //this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFact ory.createFromAsset(this.mBitmapTextureAtlas, this, “start_box.png", 0, 0 ); this.mEngine.getTextureManager().loadTexture(this.mBitmapTexture Atlas); //createSpriteSpawnTimeHandler(); }
  • 18.
    public Scene onLoadScene(){ this.mEngine.registerUpdateHandler(new FPSLogger()); final Scene scene = new Scene(1); scene.setBackground(new ColorBackground(0.0f, 0.0f, 0.0f)); //preto scene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f)) ; //azul claro //createSprite(scene); createSpriteSpawnTimeHandler(); scene.setTouchAreaBindingEnabled(true); return scene; }
  • 19.
    @Override public void onLoadComplete(){ // TODO Auto-generated method stub } @SuppressWarnings("unused") private void createSprite(Scene scene) { final MySprite sprite = new MySprite(100, 100, this.mFaceTextureRegion); scene.registerTouchArea(sprite); scene.attachChild(sprite); } private void createSprite(float X, float Y) { final MySprite sprite = new MySprite(X, Y, this.mFaceTextureRegion); this.mEngine.getScene().registerTouchArea(sprite); this.mEngine.getScene().attachChild(sprite); }
  • 20.
    private void createSpriteSpawnTimeHandler() { //Quantidadede segundos que a função será chamada final float seconds = 3f; //registra um Handle para ser chamado a cada intevalo de tempo, passa uma instancia da interface ITi merCallback, implementando o método onTimePassed this.getEngine().registerUpdateHandler(new TimerHandler(seconds, new ITimerCallback(){ public void onTimePassed(final TimerHandler pTimerHandler){ pTimerHandler.reset(); //aparecer vários na tela habilite aqui //Gera posições randômicas para gerar o Sprite, usa o fator de ajuste para não criar o Sprite fora da tela final float fatorDeAjuste = 30f; final float xPos = MathUtils.random(fatorDeAjuste, (CAMERA_WIDTH - fatorDeAjuste)); final float yPos = MathUtils.random(fatorDeAjuste, (CAMERA_HEIGHT - fatorDeAjuste)); createSprite(xPos, yPos); } })); } }
  • 21.
    Exemplo 2 –em www.grupoalves.net/startAndroidArquivos
  • 22.
    Exemplo Online –em www.grupoalves.net/startAndroidArquivos Meu texto aqui!
  • 23.
    Aula 2 Implementando Físicaem Jogos com Android Próxima Aula....