Criando uma animação simples com cocos2d
Neste post vou criar uma animção simples com cocos2d
Para começar é so criar um novo projeto com o template cocos2d Application
Apos criar o template mande rodar o projeto para rodar o HelloWorld padrão que vem de exemplo com o template
Legal, agora vamos utilizar esta cena padrão e vamos criar uma nova cena encima dela.
Primeira coisa que vamos fazer é remover todo o codigo que está dentro do init do arquivo HelloWorldScene.m o código deve ficar assim:
-(id) init
{
// always call "super" init
// Apple recommends to re-assign "self" with the "super" return value
if( (self=[super init] )) {
}
return self;
}
Agora dentro do init vamos criar um novo Sprite com o icone do cocos2d e vamos adicionar ele a tela:
-(id) init
{
// always call "super" init
// Apple recommends to re-assign "self" with the "super" return value
if( (self=[super init] )) {
CCSprite *cocos = [CCSprite spriteWithFile:@"icon.png"];
[self addChild:cocos];
}
return self;
}
Se rodarmos o código acima vamos perceber que o icone vai ficar fora da tela então vamos adicionar as seguintes linhas de cógido
CGSize size = [[CCDirector sharedDirector] winSize];
cocos.position = ccp(size.width/2,size.height/2);
O código acima pega as dimensões da tela e coloca o sprite criado no centro da tela, agora se rodarmos o código vamos ver o icone no meio da tela do simulador.
Agora vamos começar deixar a coisa mais interessante vamos animar o objeto para isso vamos usar o CCMoveTo que vai receber 2 parâmetros Time que é o tempo que o objeto demora para se deslocar e Position que é a posição onde o objecto vai parar na tela.
Então vamos adicionar o código abaixo antes de criarmos o objeto na tela com [self addChild:cocos];
id move = [CCMoveTo actionWithDuration:1.0f position:ccp(size.width/2,(size.height/2)-100)];
[cocos runAction:move];
Agora é so rodar e ver o objeto mexer para baixo na tela.
Para ficar mais legal ainda vamos criar uma sequencia de movimentos para baixo, cima, esquerda e direita.
id move_down = [CCMoveTo actionWithDuration:1.0f position:ccp(size.width/2,(size.height/2)-100)];
id move_up = [CCMoveTo actionWithDuration:2.0f position:ccp(size.width/2,(size.height/2)+100)];
id move_center = [CCMoveTo actionWithDuration:1.0f position:ccp(size.width/2,size.height/2)];
id move_left = [CCMoveTo actionWithDuration:1.0f position:ccp((size.width/2)-100,size.height/2)];
id move_righ = [CCMoveTo actionWithDuration:2.0f position:ccp((size.width/2)+100,size.height/2)];
id sequence = [CCSequence actions:move_down,move_up,move_center,move_left,move_righ,move_center,nil];
[cocos runAction:sequence];
e para repetir os movimentos acima é so adicionarmos CCRepeatForever apos nossa sequência então ficaria assim:
id repeat = [CCRepeatForever actionWithAction:sequence];
[cocos runAction:repeat];
Pronto agora a aplicação vai ficar em um loop infinito :)
Pronto bem simples e sem muito segredo, uma pequena animação com cocos2d agora basta colocar a imaginação para funcionar para saber mais a lista de efeitos e movimentos segue o link oficial da api do cocos http://www.cocos2d-iphone.org/api-ref/0.99.5/
e para quem quiser o código que fizemos acima segue o link do github https://github.com/ferbass/cocos2dSimpleAnimation
Abraço até a próxima