Sie sind auf Seite 1von 26

 Erisvaldo Gadelha Saraiva Júnior

Desenvolvendo para

iOS em Linux
E - mail : erisvaldojunior@gmail .com
Site : http://erisvaldojunior.com
Twitter : http://twitter.com/erisvaldojunior
Sobre o palestrante

Analista de Sistemas da Cehap (Companhia Estadual


de Habitação Popular);

Desenvolvedor Mobile e participante do projeto


Ginga pelo Lavid (Laboratório de Tecnologias para o
Ensino Virtual e Estatística), situado na
Universidade Federal da Paraíba;

Empreendedor da Yupi Studios (


http://yupistudios.com), startup voltada para a
criação de conteúdo criativo para dispositivos
móveis;

Bacharel em Ciência da Computação pela


Universidade Federal da Paraíba e Tecnólogo em
Sistemas para Internet pelo Instituto Federal de
Educação, Ciência e Tecnologia.
Sobre a Yupi Studios
Sobre a Yupi Studios
Sobre a Yupi Studios
Organize with Sections Objetivo
Desenvolver aplicações para a plataforma iOS 3
(iPod Touch, iPhone 2G, iPhone 3G, iPhone 3GS e iPad)
em Linux, através de compilação cruzada com o
Toolchain para iPhone.

Não é necessário ter um


Mac OS X e utilizar a IDE
Xcode para desenvolver
para iPhone. Graças ao
Toolchain para iPhone,
é possível desenvolver
para iOS em qualquer
distribuição Linux.
O que é o iOS?
Sistema operacional desenvolvido pela Apple para
dispositivos móveis (iPhone, iPad e iPod Touch).

O iOS atualmente se encontra na versão 4.x e é


baseado no Mac OS X;
Introdução

O kit de desenvolvimento para iOS (o iOS SDK)


está disponível apenas para Mac OS X. A linguagem
de programação utilizada no desenvolvimento para
iOS é o Objective-C e a IDE, o XCode.

Distribuição de aplicações única e exclusivamente


através da Apple App Store.
Apple App Store
Loja de aplicativos para iOS gerenciada pela Apple
e disponível através dos próprios aparelhos.

Em julho de 2008 foi lançada a Apple App Store,


na qual o desenvolvedor paga uma anuidade de U$
99,00, define o preço final de suas aplicações e
recebe 70% do lucro total;
Motivação

A loja vem sendo um sucesso absoluto. Disponível


em 77 países, com mais de 75 mil aplicações e 1,5
bilhão de downloads realizados, números que
crescem a cada dia;

A Apple App Store definiu uma nova era no


mercado Mobile, com vários fabricantes (e agora
operadoras) lançando suas próprias lojas de
aplicativos nos meses seguintes.
Organize with Sections Motivação
Segundo a AdMob, a Apple App Store movimenta incríveis
200 milhões de dólares por mês, somando um total de 2,4
bilhões por ano.

Trism, um jogo casual que


foi lançado no início da
Apple App Store
(similar ao Bejeweled ),
rendeu ao seu
desenvolvedor, Steve
Demeter, U$ 250.000,00 em
apenas dois meses.
Etapas do Desenvolvimento

1 2 3
Configura
r o
ambiente
Escrever
o código
Testar no
aparelho

Desenvolvendo para iOS em Linux


1 CONFIGURAR O
AMBIENTE

Atualização do Firmware do aparelho;


Jailbreak do aparelho;

Download do iOS SDK;

Instalação do Toolchain.
Estrutura EXPANDIDA de classes do MIDP
O que é a classe GameCanvas?
Trata-se de uma especialização da classe Canvas
GameCanvas
que possui uma série de melhorias para o
desenvolvimento de jogos.
Classe

Primeiro benefício
em relação a Canvas:
GameCanvas possui a
técnica de Double
Buffering
implementada.
Que outros benefícios possui
GameCanvas?
GameCanvas
Com GameCanvas, é possível verificar as teclas
pressionadas e atualizar a tela a qualquer momento.

GameCanvas, ao contrário de Canvas, não força o


programador a utilizar os métodos paint() e
keyPressed() para desenhar na tela e verificar as
teclas pressionadas, respectivamente.

Com GameCanvas, o programador tem liberdade para


atualizar a tela e/ou verificar teclas
Classe

pressionadas a qualquer momento do LOOP do jogo.

Além disso, com GameCanvas é possível detectar


várias teclas pressionadas ao mesmo tempo, ao
contrário de Canvas.
E como isso funciona na prática?
GameCanvas implementa a interface Runnable e o LOOP
GameCanvas
do jogo fica no método run () .
Classe
A classe Layer é
abstrata e
representa qualquer
elemento visual da
Game API (incluindo
os Sprites citados
anteriormente).

Layer possui
alguns métodos
Classe Layer comuns a todos os
elementos visuais
da Game API,
conforme mostrado
no lado esquerdo.
Classe Sprite

Classe que representa uma


imagem (geralmente animada) no
jogo, como por exemplo os
personagens, arbustos, itens,
etc;
A sua principal característica
é o suporte a frames e
animação;
Possui detecção de colisão já
implementada, tanto por caixa
quanto pixel-a-pixel.

Suporta algumas transformações


sobre a imagem (Espelhamento,
giro 90°, 180°, 270°, etc).
Como funciona a questão dos Frames e
a Animação?
A imagem pode ser dividida em N partes, sendo cada uma
dessas partes um frame. Todos os frames precisam ter o
mesmo tamanho.
Sprite

A navegação entre
os frames pode
ser feita através
dos métodos
nextFrame () ,
prevFrame () e
Classe

setFrame () . Esse
último recebe
como parâmetro o
número do frame
que deve ser
utilizado no
momento.
E quanto às transformações?
As transformações são realizadas pelo método
setTransform () e se baseiam em um ponto de referência
definido por setRefPixelPosition ().
Sprite
Classe
Classe TiledLayer
Usada geralmente para representar mapas, utilizando um
array bidimensional com índices de imagens. Suporta tiles
animadas (efeito de água se movimentando, arbusto sob
efeito de evento, etc).
Classe LayerManager
Responsável por gerenciar todos os Layers (camadas) do
jogo. Pode-se definir a posição de cada camada, adicionar
ou remover camadas, etc.
2 INDO PARA A
PRáTICA

 Construindo um LOOP de jogo simples com a Game API


Como funciona um

GAME
LOOP
?
Código Game Loop
3 O GAME BUILDER E
EXEMPLOS
ADICIONAIS

 A ferramenta de criação de jogos Game Builder do NetBeans e


Exemplos Adicionais
What’s Your Message?
OBRIGADO!

Das könnte Ihnen auch gefallen