10 Feb

Sviluppare un videogioco per iPhone – I primi passi

Eccoci al primo tutorial su come creare un videogioco per iPhone!
Nella scorsa puntata abbiamo visto come installare gli “attrezzi” del mestiere.
Oggi inizieremo a far pratica con Cocos2D. Innanzitutto apriamo il progetto creato la scorsa volta. Dalla barra di sinistra, clicchiamo sul file HelloWorldLayer.m

Schermata-2014-02-07-alle-17.18.30

– Cancelliamo dalla funzione -(id) init il codice dentro if( (self=[super init]) ) { }

Schermata-2014-02-07-alle-17.18.57

Adesso siamo pronti per iniziare.

Schermata-2014-02-07-alle-17.19.06

In Cocos2D, tutti gli elementi su schermo sono nodi (CCNode). I nodi che hanno rappresentano un’immagine si chiamano sprite (CCSprite). I nodi che hanno la funzione di layer si chiamano per l’appunto layer (CCLayer).
Le varie sezioni del gioco (menu principale, gioco, menu di pausa, crediti, ecc) sono divise in varie sezioni, dette scene (CCScene).
Ovviamente ci sono tanti altri tipi di nodi come i pulsanti (CCMenuItem) ma lo vedremo in seguito.

Iniziamo con l’inserire sullo schermo una sprite.

Schermata-2014-02-07-alle-17.39.45

Guardiamo il risultato premendo il tasto Build and Run (la freccia in alto a sinistra).

Schermata-2014-02-07-alle-17.40.00

Perfetto, adesso proviamo ad animarla.
In Cocos2D le animazioni avvengono tramite l’uso delle azioni (CCAction).
Per iniziare proviamo con un effetto FadeOut:

Schermata-2014-02-07-alle-17.44.26

Schermata-2014-02-07-alle-17.46.27

Ok, ma se volessimo fare più effetti contemporaneamente?

In nostro soccorso vengono l’azione CCSequence che ci permette di concatenare più azioni in sequenza e l’azione CCSpawn che permette di avviarne diverse contemporaneamente.

Proviamo:

Schermata-2014-02-07-alle-18.21.18

Schermata-2014-02-07-alle-17.58.53

E se volessimo far girare all’infinito la nostra sprite come una trottola?

Schermata-2014-02-07-alle-18.21.18

Ed ecco il risultato!

Schermata-2014-02-07-alle-18.03.35

Nelle prossime lezioni impareremo come creare diverse scene e layer.

Grazie a tutti e alla prossima!

Raffaele.