oficina android - games com andengine - dia 2
DESCRIPTION
Dia 2 da Oficina Android no Sesc Santo André, realizada em fevereiro/2013.TRANSCRIPT
![Page 1: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/1.jpg)
{
Games - V1
Dia 2
![Page 2: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/2.jpg)
Introdução
Jogos têm um conceito diferente de uma aplicação “comum”
Para se criar um jogo, é necessário um motor de geração de gráficos e comportamentos (engine).
![Page 3: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/3.jpg)
Introdução
Existem diversas engines para Android
![Page 4: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/4.jpg)
Introdução
Corona
jMonkey Engine
Cactus2D
![Page 5: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/5.jpg)
AndEngine
Nicholas Gramlich
![Page 6: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/6.jpg)
Criar um jogo não é fácil.
Requer estudo e dedicação.
![Page 7: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/7.jpg)
Primeiro passo: tenha uma idéia e um objetivo
Segundo passo: tenha um amigo Designer Gráfico
Terceiro passo: coloque a mão-na-massa. Bora programar
http://www.ehow.com.br/jogos-celular-como_7191/
![Page 8: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/8.jpg)
Introdução
Conceitos Android
Para se ter uma tela, é necessário ter uma Activity
Para se ter uma Activity, é necessário ter um layout.xml
O layout.xml deve ser declarado no arquivo AndroidManifest.xml
![Page 9: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/9.jpg)
Filme ?
![Page 10: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/10.jpg)
IntroduçãoComponentes importantes em um jogo com AndEngine
Scene (ação)
Sprite
Camera Sprite
SaloonText
Rectangle
Sprite
![Page 11: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/11.jpg)
IntroduçãoMétodos importantes em um jogo com AndEngine
Luz ... onCreateResources()
Câmera ...onCreateEngineOptions()
onCreateScene()Ação ...
SimpleBaseGameActivity
Classe
![Page 12: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/12.jpg)
?Passo 1 - Objetivo do jogo
![Page 13: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/13.jpg)
3 horas depois ... (já é um começo)
![Page 14: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/14.jpg)
No dia seguinte ...
![Page 15: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/15.jpg)
![Page 16: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/16.jpg)
![Page 17: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/17.jpg)
KillingMoscas
![Page 18: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/18.jpg)
KillingMoscas 0
SCENE
LINE
Sprite
Physics Box2D
TrueType Font
Sprite ModifierMoveModifier
RotationModifierJumpModifier
TouchArea
Fase 1 : elementos principais
![Page 19: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/19.jpg)
Adicione os métodos:
onCreateEngineOptions() //Camera
onCreateResources() //Luz
onCreateScene() //Ação
... MainActivity extends SimpleBaseGameActivity {
![Page 20: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/20.jpg)
private int LARGURA = 800;private int ALTURA = 480;private Scene cena = null;private ITextureRegion regiaoBackground = null;
private Font fonte = null;private Text txPontuacao = null;private int placar = 0;private ITextureRegion regiaoMosca = null;
... MainActivity extends SimpleBaseGameActivity {
![Page 21: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/21.jpg)
@Overridepublic EngineOptions onCreateEngineOptions(){ Camera camera = new Camera(0, 0, LARGURA, ALTURA); EngineOptions opcoes = new EngineOptions(true, ScreenOrientation.LANDSCAPE_FIXED,
new RatioResolutionPolicy(LARGURA, ALTURA), camera);
opcoes.getAudioOptions().setNeedsSound(true);
opcoes.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
return opcoes;}
Camera
![Page 22: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/22.jpg)
Textura
Textura é a imagem na memória gráfica. No Android, a largura e altura deve ser em potência de
2 (32, 64, 128 ...)
Região define um retângulo para a Textura. É usado para o sistema conhecer os Sprites.
![Page 23: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/23.jpg)
ITexture textura = new BitmapTexture(getTextureManager(), new IInputStreamOpener() { @Override public InputStream open() throws IOException { return getAssets().open("gfx/background.png"); }});
textura.load(); //#partiu memória
regiaoBackground = TextureRegionFactory.extractFromTexture(textura);
BACKGROUND
onCreateResources()
![Page 24: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/24.jpg)
ITexture textura = new BitmapTextureAtlas(getTextureManager(),256,256);
fonte = FontFactory.createFromAsset(getFontManager(), textura, getAssets(), "font/amsterdam.ttf", 34f, true, Color.RED_ARGB_PACKED_INT);
fonte.load(); //run to memory, Forest !
txPontuacao = new Text(LARGURA-100, 10, fonte,
"0", 10 , getVertexBufferObjectManager());
Fonte
![Page 25: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/25.jpg)
BitmapTextureAtlas texturaBitmap = new BitmapTextureAtlas(getTextureManager(),64,64);
texturaBitmap.load(); //astalavista, baby !
regiaoMosca = BitmapTextureAtlasTextureRegionFactory.createFromAsset( texturaBitmap, this, "gfx/mosca.png", 0, 0);
Mosca
Aff ... Pra q ?
![Page 26: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/26.jpg)
cena = new Scene();
Sprite backgroundSprite = new Sprite(0, 0, regiaoBackground, getVertexBufferObjectManager());cena.attachChild(backgroundSprite);
cena.attachChild(txPontuacao);
Text texto = new Text(10, 10, fonte, ”KillingMoscas", getVertexBufferObjectManager());cena.attachChild(texto);
Line linha= new Line( 0, texto.getY() + 40, //Onde começa a linha ? (ponta 1) LARGURA, texto.getY() + 40, //Onde termina a linha ? (ponta 2) getVertexBufferObjectManager());
linha.setColor(Color.YELLOW);linha.setLineWidth(12);cena.attachChild(linha);
Cenário
onCreateScene()
![Page 27: Oficina Android - Games com AndEngine - Dia 2](https://reader033.vdocuments.mx/reader033/viewer/2022052904/5579a272d8b42ac1148b48ac/html5/thumbnails/27.jpg)
Introdução
Continua no código-fonte …