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

Шрифт
Фон

classe CCMenu representa o menu onde estes botões estarão posicionados. Com estas classes, o Cocos2D já sabe se estamos tocando em um botão, se estamos segurando-o, ou se o soltamos.

O que precisamos agora é:

Criar os 4 botões: Play, Highscore, Help e Sound.

Configurar suas posições

Adicioná-los à tela inicial

No init da TitleScreen.m, criaremos nosso menu com os botões:

- (id)init

{

self = [super init];

if (self) {

//...

72

Casa do Código

Capítulo 4. Tela inicial: Lidando com Background, logo e botões de menu

// Cria os botões

CCMenuItemSprite *playButton = [CCMenuItemSprite

itemWithNormalSprite:[CCSprite spriteWithFile:kPLAY]

selectedSprite:[CCSprite spriteWithFile:kPLAY]

target:self

selector:@selector(playGame:)];

CCMenuItemSprite *highscoreButton = [CCMenuItemSprite

itemWithNormalSprite:[CCSprite spriteWithFile:kHIGHSCORE]

selectedSprite:[CCSprite spriteWithFile:kHIGHSCORE]

target:self

selector:@selector(viewHighscore:)];

CCMenuItemSprite *helpButton = [CCMenuItemSprite

itemWithNormalSprite:[CCSprite spriteWithFile:kHELP]

selectedSprite:[CCSprite spriteWithFile:kHELP]

target:self

selector:@selector(viewHelp:)];

CCMenuItemSprite *soundButton = [CCMenuItemSprite

itemWithNormalSprite:[CCSprite spriteWithFile:kSOUND]

selectedSprite:[CCSprite spriteWithFile:kSOUND]

target:self

selector:@selector(toggleSound:)];

// Define as posições dos botões

playButton.position = ccp(0.0f, 0.0f);

highscoreButton.position = ccp(0.0f, -50.0f);

helpButton.position = ccp(0.0f, -100.0f);

soundButton.position = ccp((SCREEN_WIDTH() / -2.0f) + 70.0f,

(SCREEN_HEIGHT() / -2.0f) + 70.0f);

// Cria o menu que terá os botões

CCMenu *menu = [CCMenu menuWithItems:playButton,

highscoreButton,

helpButton,

soundButton,

nil];

[self addChild:menu];

}

return self;

}

@end

73

4.9. Conclusão

Casa do Código

Perceba

que

nossos

botões

foram

criados

utilizando

a

classe

CCMenuItemSprite, que representa um botão com uma imagem ( sprite).

Existem diversos tipos de botões, tais como o CCMenuItemLabel para textos, o

CCMenuItemImage para UIImages, entre outros. Por padrão, os botões incluídos

no menu serão centralizados no meio da tela. Ou seja, ao posicionar um botão na

posição (0,0), ele aparecerá no centro da tela.

Quando criamos os botões, informamos os parâmetros target e selector,

que indicam os métodos chamados cada vez que um botão for selecionado. Falta

apenas criar estes métodos em nossa TitleScreen.m:

- (void)playGame:(id)sender

{

NSLog(@"Botão selecionado: Play");

}

- (void)viewHighscore:(id)sender

{

NSLog(@"Botão selecionado: Highscore");

}

- (void)viewHelp:(id)sender

{

NSLog(@"Botão selecionado: Help");

}

- (void)toggleSound:(id)sender

{

NSLog(@"Botão selecionado: Som");

}

Rode o projeto e confira os botões recebendo os inputs no console.

4.9

Conclusão

O jogo deve estar como mostrado na tela abaixo, com background e logo configura-

dos. Além disso, 4 botões foram implementados: Play, Highscore, Help e controle

de Som.

74

Casa do Código

Capítulo 4. Tela inicial: Lidando com Background, logo e botões de menu

Figura 4.7: Tela de abertura.

O core do desenvolvimento de um jogo não é fácil. Repare na evolução do pro-

tótipo para o jogo real que estamos criando e perceberá que partes complexas foram encapsuladas pelo Cocos2D.

Nesse capítulo, fomos um pouco mais a fundo em questões como telas (

CCScene), camadas ( CCLayer), menus ( CCMenu) e botões ( CCMenuItem). Uti-

lizamos também um importante elemento

do Cocos2D, o CCDirector.

A seguir, faremos a transição para a tela do jogo e teremos nossos primeiros

elementos do game.

75

Capítulo 5

Tela do jogo e objetos inimigos

Hora de adicionar perigo ao nosso game! Nesse capítulo iremos entrar na tela do

jogo de fato, onde toda a ação ocorrerá. Essa será a principal parte do jogo e por isso trataremos em alguns capítulos.

Para iniciar, passaremos pela transição da tela de abertura para a tela de jogo.

Além disso, colocaremos os inimigos na tela. Alguns conceitos importantes do Co-

cos2D serão utilizados nesse capítulo, cujo objetivo é ter a tela do game rodando, com alguns inimigos surgindo.

Utilizaremos muito do que já foi visto até aqui, como CCLayers para represen-

tar camadas de uma tela, CCSprites para controlar objetos e CCScene para criar

a tela do jogo. Além disso o CCDirector será utilizado novamente.

No fim desse capítulo teremos a transição entre tela de abertura e tela do game,

além dos objetos inimigos aparecendo na tela.

5.1. GameScene

Casa do Código

Figura 5.1: Meteoros inimigos.

5.1

GameScene

Precisamos de uma tela para o jogo, para conter os elementos principais de iteração do game como player, inimigos e controles. Assim como anteriormente, criaremos

uma tela herdando da classe CCLayer do Cocos2D, para que possamos ter diversas

camadas atuantes, como botões, inimigos, player, score etc.

Também como anteriormente, a definição de uma tela é criada através de um

CCScene, que saberá lidar com as camadas da nossa classe.

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

0
Шрифт
Фон

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