Aula 1
Desenvolvimento
de Jogos
Desenvolvimento de Jogos para Celulares e Tablets em Android
Introdução ao Desenvolvimento de Jogos em Android
Implementando Física em Jogos com Android
Interatividade nos Jogos
Montando o seu Jogo de Sucesso em Android
Disponibilizando o Jogo para o Mundo
‘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
Próxima Aula....
Implementando Física em Jogos com Android
Download

StartGamesAndroid_Au..