Leite Anderson - Desenvolvimento de Jogos para iOS стр 27.

Шрифт
Фон

self.score = 0;

// Posiciona o Placar recém criado

self.position =

ccp(SCREEN_WIDTH() - 50.0f, SCREEN_HEIGHT() - 50.0f);

124

Casa do Código

Capítulo 7. Detectando colisões, pontuando e criando efeitos

// Adiciona o Player na tela, como um texto para o jogador

self.text = [CCLabelBMFont labelWithString:

[NSString stringWithFormat:@"%d", self.score]

fntFile:@"UniSansSemiBold_Numbers_240.fnt"];

self.text.scale = (float)(240.0f / 240.0f);

[self addChild:self.text];

}

return self;

}

Implemente também o método increase. Seu código é simples, apenas incre-

menta a variável score e configura novamente o texto do placar.

- (void)increase

{

// Aumenta a pontuação e atualiza o Placar

self.score++;

self.text.string = [NSString stringWithFormat:@"%d", self.score];

}

Agora que temos a camada do placar preparada, vamos adicioná-la à tela princi-

pal. Para isso, criaremos dois objetos: um do tipo CCLayer e outro do tipo Score.

Na GameScene.h adicione:

# import "Score.h"

//...

@property (nonatomic, retain) CCLayer *scoreLayer;

@property (nonatomic, retain) Score *score;

É necessário iniciar a camada e adicioná-la a tela. No init da GameScene.m

adicione:

- (id)init

{

self = [super init];

if (self) {

//...

// CCLayer para o Placar

self.scoreLayer = [CCLayer node];

[self addChild:self.scoreLayer];

}

125

7.5. Conclusão

Casa do Código

return self;

}

Para finalizar, basta criar o objeto do tipo Score e adicionar a camada corres-

pondente.

Ainda

na

classe

GameScene

adicione

essa

chamada

ao

método

addGameObjects:

- (void)addGameObjects

{

//...

// Cria o Placar

self.score = [Score score];

[self.scoreLayer addChild:self.score];

}

Agora altere o método meteorHit:withShoot: para que aumente o score

quando houver colisão entre um tiro e um meteoro:

- (void)meteorHit:(id)meteor withShoot:(id)shoot

{

//...

// Aumenta a pontuação

[self.score increase];

}

7.5

Conclusão

Detectar colisões de forma manual, como feito no capítulo do protótipo, não é tão simples e envolve muitos cálculos matemáticos. Porém, utilizando um framework

como o Cocos2D as coisas são facilitadas.

Nesse capítulo passamos pelo que pode ser considerado

o coração do jogo, a

detecção de colisões. A partir delas, executamos efeitos e atualizamos a tela para o jogador.

O próximo capítulo tratará de uma parte muito importante para dar vida aos

jogos, os sons e efeitos.

126

Capítulo 8

Adicionando sons e música

Os sons são de fundamental importância no desenvolvimento de um game. Hoje

existem profissões como sound designers que trabalham especificamente criando os

sons dos games. Muitos jogos utilizam orquestras para executar sua trilha sonora.

A música dá vida ao jogo, torna-o mais divertido e dá respostas ao jogador para

as partes importantes.

Existem duas formas principais de sons no mundo dos games: música e efeitos.

Quando o jogo começa, uma música de fundo normalmente dá o clima do jogo.

Essa música é normalmente executada em background e se repete inúmeras vezes ao

longo do game. Além dela, existem os efeitos de som gerados em momentos impor-

tantes, como quando uma colisão é detectada ou quando o placar é alterado

Para o nosso jogo, utilizaremos sons encontrados gratuitamente no site http://

www.freesound.org/. Você pode buscar diversos tipos de sons nesse site para o seu próximo game!

8.1. Executando sons

Casa do Código

8.1

Executando sons

Nessa primeira etapa utilizaremos o framework Cocos2D para adicionar som a 3

eventos do jogo. Utilizaremos 3 arquivos de sons diferentes:

Disparo de um tiro

Colisão do tiro com um meteoro

Colisão entre meteoro e avião

Podemos utilizar os formatos mais comuns para adicionar sons ao nosso

jogo, e aqui o formato escolhido será wav. Colocaremos os sons no diretório

Resources/Sounds do nosso projeto.

Você pode encontrar todos os sons que serão utilizados nesse capítulo nesse link: https://github.com/bivissoft/jogos_ios_14bis

SoundEngine

Para lidar com sons,

o Cocos2D disponibiliza uma classe chamada

SimpleAudioEngine, que possui diversos métodos que possibilitam traba-

lhar com sons e música no game. Para utilizar essa classe não é necessário criar

uma instância, mas sim utilizar um Singleton disponibilizado pelo framework.

Para isso executamos [SimpleAudioEngine sharedEngine] tendo acesso às

opções de sons de que precisamos.

Com esse acesso, podemos executar músicas e sons, parar e iniciar arquivos de

áudio, aumentar e diminuir o volume etc. Nesse momento, iniciaremos executando

3 sons utilizando o método playEffect:. Esse método recebe como parâmetro o

nome do arquivo de áudio.

Para facilitar, importaremos a classe

SimpleAudioEngine no arquivo

Prefix.pch:

# ifdef __OBJC__

//...

# import "SimpleAudioEngine.h"

# endif

O primeiro efeito de som, o tiro, será colocado na classe Shoot. Adicione o

código abaixo ao método start da Shoot.m:

128

Casa do Código

Capítulo 8. Adicionando sons e música

- (void)start

{

//...

// Som do Tiro

Ваша оценка очень важна

0
Шрифт
Фон

Помогите Вашим друзьям узнать о библиотеке