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

Шрифт
Фон

Figura 4.4: Simulador com Hello World do Cocos2D.

61

4.3. ajustando a orientação

Casa do Código

Você percebeu os números que aparecem no canto inferior esquerdo do simula-

dor? Estes números indicam o consumo de memória, tempo entre um game loop e

outro, e a quantidade de frames por segundo. Estas informações são bastante úteis caso você perceba que seu jogo está muito lento e queira verificar a que velocidade ele está sendo executado.

Para

nosso

game,

vamos

retirar

estes

números

da

tela.

Para

isto,

no

arquivo

AppDelegate.,

no

método

application:didFinishLaunchingWithOptions:

vamos alterar a op-

ção de exibir FPS para não:

//...

// Display FSP and SPF

[director_ setDisplayStats:NO];

//...

4.3

ajustando a orientação

Por padrão, o Cocos2D inicia um novo projeto com a orientação do aparelho em

modo paisagem. Para nosso game, alteraremos o projeto para rodar o jogo em

modo retrato. Abra as configurações do projeto em Supported Interfaces

Orientations e marque apenas a opção Portrait:

Figura 4.5: Configurando projeto em modo retrato.

No

AppDelegate.m,

dentro

do

@implementation

da

MyNavigationController, altere os seguintes métodos padrões para que a

tela não gire quando o aparelho mudar de posição:

- (NSUInteger)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskPortrait;

}

62

Casa do Código

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

- (BOOL)shouldAutorotateToInterfaceOrientation:

(UIInterfaceOrientation)interfaceOrientation

{

return interfaceOrientation == UIInterfaceOrientationPortrait;

}

Rode o game e agora o Hello World deverá aparecer em modo retrato:

Figura 4.6: Simulador com Hello World em modo retrato.

63

4.4. Background

Casa do Código

4.4

Background

A primeira tela do game é a tela de abertura, e no Cocos2D, utilizamos uma classe chamada CCLayer para identificar cada tela do jogo. Ao herdar dessa classe do

framework, ganhamos alguns reconhecimentos do Cocos2D, como conseguir fazer

a transição entre as telas com apenas uma linha de código.

Uma classe que herda de CCLayer não precisa ter muitos códigos do framework,

podemos criar nossa tela inicial como bem entendermos, apenas utilizando esse

comportamento para informar ao framework que tipo de objeto estamos represen-

tando.

Layers

Criar telas com o CCLayer do Cocos2D é criar telas pensando em camadas que

se sobrepõem. Essas camadas são transparentes, a menos quando definidas de outra

forma, e quando colocadas uma sobre as outras definem a tela final.

Na tela de abertura, podemos pensar em camadas para a imagem de background,

para o logo e para o menu.

Criaremos uma classe chamada TitleScreen. Você pode criá-la no diretório

ou grupo do projeto que desejar. No nosso projeto, utilizamos o diretório Scenes.

Lembre-se de organizar suas classes em grupos significativos.

Nesta classe, utilizaremos um segundo componente do Cocos2D. Para instanciar

uma tela no framework, utilizamos a classe CCScene, que é devolvida já pronta para utilizarmos quando invocamos

o método node.

Scenes

Outro objeto importante do Cocos2D são as Scenes. Com elas, conseguimos

inicializar telas do jogo. Um jogo pode ter quantas Scenes forem necessárias, po-

rém apenas uma estará ativa por vez.

Por exemplo, no nosso jogo teremos a tela de abertura, a tela do jogo, a tela de

ajuda, a tela de pause etc. Cada uma delas é um Scene.

Vamos ao código inicial da tela de abertura. Precisamos de uma classe que saiba

trabalhar com camadas e de uma tela. Criaremos a classe TitleScreen que re-

ceberá essas definições de camadas e a adicionaremos em uma Scene, formando a

base da tela inicial.

Criaremos o método scene, responsável por instanciar nossa classe e retorná-la

dentro de uma Scene. Você perceberá ao longo do livro que todas as scenes que

64

Casa do Código

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

criarmos terão este método.

No header TitleScreen.h iremos declarar o método scene:

# import "cocos2d.h"

@interface TitleScreen : CCLayer

+ (CCScene *)scene;

@end

E no implementation TitleScreen.m vamos implementar o método. Você

pode copiá-lo da classe HelloWorldLayer, criada pelo Cocos2D.

+ (CCScene *)scene

{

// 'scene' is an autorelease object.

CCScene *scene = [CCScene node];

// 'layer' is an autorelease object.

TitleScreen *layer = [TitleScreen node];

// add layer as a child to scene

[scene addChild:layer];

// return the scene

return scene;

}

O código anterior prepara a tela para utilização e posicionamento dos elementos,

no nosso caso, esses elementos serão background, logo e botões.

Vamos iniciar configurando o background do game. Assim como botões ou logo,

o background também é um objeto representado por uma imagem. Lembre-se que

para manipular imagens temos o conceito de Sprites, que basicamente é um ob-

jeto associado à uma figura.

Sprites

Um Sprite no Cocos2D é como qualquer outro Sprite, ou seja, uma imagem

2D que pode ser movida, rotacionada, animada, ter sua escala alterada etc. Umas das 65

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

0
Шрифт
Фон

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