Adicione os arquivos sky.png e nave.png no diretório do projeto. Você pode
46
Casa do Código
Capítulo 2. Protótipo de um jogo
fazer isto pelo Xcode clicando na pasta Impossible do projeto, e acessando o menu File, Add Files to "Impossible"....
Vamos alterar algumas linhas para utilizar as imagens.
No método
drawBackgroundInContext: da classe Impossible adicione as linhas que de-
senharão uma imagem como background do game.
// Desenha o Plano de Fundo
- (void)drawBackgroundInContext:(CGContextRef)context
{
//
UIGraphicsPushContext(context);
//
CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 1.0);
//
CGContextFillRect(context, CGRectMake(0, 0,
//
self.frame.size.width,
//
self.frame.size.height));
//
UIGraphicsPopContext();
// Utiliza uma imagem do projeto e a desenha em um
// determinado ponto da tela
UIImage *image = [UIImage imageNamed:@"sky.png"];
[image drawAtPoint:CGPointMake(0.0f, 0.0f)];
}
Altere o método drawPlayerInContext: para renderizar a imagem da nave.
// Desenha o Player
- (void)drawPlayerInContext:(CGContextRef)context
{
//
UIGraphicsPushContext(context);
//
CGContextBeginPath(context);
//
CGContextAddArc(context,
//
self.playerX,
//
self.playerY,
//
self.playerRadius,
//
0,
(2 * M_PI),
//
YES); // Círculo de 360° (0 ~ 2pi)
//
CGContextSetRGBFillColor(context, 0.0f, 0.9f, 0.0f, 1.0f);
//
CGContextFillPath(context);
//
UIGraphicsPopContext();
// Utiliza uma imagem do projeto e a desenha em um
// determinado ponto da tela
47
2.9. Adicionando mais vida: imagens da nave e do céu
Casa do Código
UIImage *image = [UIImage imageNamed:@"nave.png"];
[image drawAtPoint:CGPointMake(
(self.playerX - (image.size.width / 2)),
(self.playerY - (image.size.height / 2)))];
}
Altere a cor do inimigo para vermelho.
// Desenha o Inimigo
- (void)drawEnemyInContext:(CGContextRef)context
{
UIGraphicsPushContext(context);
CGContextBeginPath(context);
CGContextAddArc(context,
self.enemyX,
self.enemyY,
self.enemyRadius,
0,
(2 * M_PI),
YES); // Círculo de 360° (0 ~ 2pi)
//CGContextSetRGBFillColor(context, 0.4f, 0.4f, 0.4f, 1.0f);
CGContextSetRGBFillColor(context, 1.0f, 0.0f, 0.0f, 1.0f);
CGContextFillPath(context);
UIGraphicsPopContext();
}
Pode rodar o jogo, o protótipo está com sprites e conceitos fundamentais de um
jogo!
48
Casa do Código
Capítulo 2. Protótipo de um jogo
Figura 2.18: Imagem do jogo.
2.10
Conclusão
Um jogo possui diversos conceitos bem específicos, que não são comuns em outros
tipos de projetos de software como web ou desktop. Para desenvolver um jogo é interessante ter bem esclarecidas as partes principais que compõem o quebra-cabeça do mundo da programação para games.
Um jogo ocorre normalmente em um loop infinito, no qual inputs, ou seja,
entradas de comandos, são interpretados e utilizados para executar as lógicas do
game. O movimento do player, normalmente uma imagem chamada sprite cos-
tuma ser dado a partir desses inputs, assim como o movimento dos inimigos, que
49
2.10. Conclusão
Casa do Código
indiretamente, também é calculado.
Conceitos periféricos como atualização da tela, limpeza da tela e
botões de comandos também são importantes e devem ser todos muito bem
pensados na execução do jogo.
Com isso em mente, podemos planejar nosso jogo e iniciar seu desenvolvi-
mento.
50
Capítulo 3
História do jogo
Jogos são feitos de magia, de ilusão, de fantasia. São histórias que envolvem as pessoas de uma forma poderosa, na qual o usuário se sente o protagonista estando no
comando das ações.
No começo do livro falamos sobre um jogo fantástico chamado River Raid,
além de desenvolver um protótipo de jogo de avião no capítulo anterior. Pois bem, chegou a hora!
Mas se criarmos um jogo de nave, qual apelo ele terá? O que o diferenciará dos
mil outros jogos que podemos encontrar na App Store? O que fará prender a atenção do jogador?
O enredo, os personagens e a carisma são peças fundamentais que vestem um
jogo. É realmente importante considerar um tema chamativo que seja diferente do
que já estamos acostumados. Como fazer algo um pouco diferente em um jogo de
naves? Como trazer isso para um contexto com o qual os nossos jogadores estejam
familiarizados?
Criaremos um jogo também com a temática de aviões, como uma homenagem
3.1. 14-bis
Casa do Código
a um importante brasileiro que participou do inicio dessa revolução aérea.
Em 1873 nascia Alberto Santos Dumont, um piloto, atleta e inventor brasileiro.
Figura 3.1: Alberto Santos Dumont
Santos Dumont projetou, construiu e voou os primeiros balões dirigíveis com
motor a gasolina, conquistando o Prêmio Deutsch em 1901, quando contornou a
Torre Eiffel. Se tornou então uma das pessoas mais famosas do mundo durante o
século XX.
3.1
14-bis
Em 1906, Santos Dumont criou um avião híbrido chamado 14 bis, considerado o
primeiro objeto mais pesado que o ar a superar a gravidade terrestre.
52
Casa do Código
Capítulo 3. História do jogo
Figura 3.2: 14-bis do brasileiro Santos Dumont