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