Cocos2d – Tutorial Video 03

Pubblicato: 13 novembre 2011 in Tutorial Video

TUTORIAL N°3

In questo terzo tutorial finalmente vediamo come si inseriscono le immagini.

Prima di inserire le immagini definiamo le 3 cose che verranno usate in cocos2d e cioè:

  • scene;
  • layer;
  • sprite.

La scena è come se fosse l’impalcatura di un quadro.

La layer è come se fosse la tela.

La sprite è come se fosse un immagine sulla tela.

Prima di inserire una “sprite” bisogna creare una “scene” con un “layer”.

Ora incominciamo a spiegare come si inserisce un immagine.

Per inserire un immagine si crea una variabile di tipo immagine, il tipo immagine (come per gli interi è int) è definito con “CCSprite”. Quindi per definire una variabile di nome “pippo” si scrive “CCSprite *pippo”.

Vediamo le parentesi quadre in object-C cosa fanno, il primo termine all’interno della parentesi è l’oggetto a cui si vuole applicare una azione ed il secondo è l’azione:

[ricevente      azione];

———————————-

Se un azione contiene un messaggio si scrive:

[ricevente     azione     :    messaggio];

———————————-

Se voglio spedire dei fiori alla mia ragazza scrivo:

[ragazza        spedisci     :    fiori];

————————————

Se voglio scrivere più azioni allo stesso ricevente posso scrivere in due modi per esempio:

[ragazza      spedisci      :   fiori];

[ragazza      dai             :     bacio];

————————————-

oppure in maniera più compatta

[ragazza           spedisci   :  fiori           dai  :   bacio];

—————————————–

Ora tornando al nostro esempio se vogliamo inserire un immagine possiamo scrivere:

CCSprite  *immagine;

*immagine = [CCSprite     spriteWithfile     :    @”nomeImmagine.png”];

—————————————–

dove “nomeImmagine.png” è il nome della mia immagine inserita all’interno della cartella “resources”.

In maniera più compatta possiamo scrivere:

CCSprite   *immagine = [CCSprite     spriteWithfile     :    @”nomeImmagine.png”];

——————————————

Una volta inserita l’immagine verrà visualizzata con il centro di essa nel punto (0,0), cioè in basso a sinistra.

Se vogliamo spostarla dobbiamo scrivere:

[immagine      setPosition    :     ccp (coordinata x in numeri  ,  coordinata y in numeri)]

———————————————-

cioè    [ricevente   azione  :   messaggio];

A questo punto abbiamo creato l’immagine, l’abbiamo posizionata dove ci piace di più e ora dobbiamo inserirla nel seguente modo:

[self     addChild   :  immagine];

————————————————–

“self” è come se fosse lo schermo o più precisamente una scena con un layer mentre “addChild” è l’azione per inserire l’oggetto.

Spero che questo primo tutorial sia stato utile.

Nel prossimo tutorial medremo come inserire più immagini e scritte.

Ciaoo

commenti
  1. Stefano scrive:

    Ciao, innanzitto ti faccio i complimenti per le guide, sono molto ben fatte e le ho seguite per incominciare a “smanettare” su cocos2d!
    Ne approfitto, in attesa della lezione sulle collisioni🙂 per farmi anticipare una cosa: allora, io riesco già a gestire la collisione fra 2 CCSprite se sono nella stessa classe oppure se sono entrambe nel “main”.
    Se però io volessi gestire la collisione fra 2 oggetti diversi (diciamo B e C) dove entrambe le classi estendono la classe A, cosa mi consiglieresti di fare?
    Devo esporre su entrambe le classi un metodo per restituire la posizione (tipo getX, getY oppure un GetBoundingBox)?
    Avresti un esempio semplice da farmi vedere oppure da consigliarmi?
    Ti ringrazio e acomplimenti ancora per le guide!

    Stefano

    • signo scrive:

      Ciao Stefano,
      grazie dei complimenti.
      Purtroppo anche io sono alle prime armi con Cocos2d, ho creato questo blog per dare la possibilità a chi non lo conosce di prendere dimestichezza, e sperando che utenti più esperti vengano a rispondere ai dubbi vari.
      Non ho una risposta alla tua domanda, ma da quanto ho capito (e potrei benissimo sbagliarmi) se stai usando Box2d o Chimpmunk il metodo corretto è GetBoundingBox, invece credo sia impossibile avere due sprite su due classi e metterle assieme su una terza classe.
      Sperando che qualcuno venga in tuo aiuto posso solo dirti che cercherò notizie e appena trovo qualcosa posto un tutorial!
      ciaoo

  2. Thomas scrive:

    Ciao a tutti anche io ho apprezzato molto ciò che sta facendo Stefani..mi prersento mi chiamo thomas e studio ingegneria informatica…ma con cos2d sono alle prime armi anch io…ho solo una buona base di programmazione in c++ e altri linguaggi…io sto iniziando a usare cocos2d-x che è la versione multipiattaforma in quanto non posseggo una mac..ma cosa ne dirste di mettere su un forum se siamo in un po a smanettarci sopra?..magari nasce una bella community ed italiane su questo argoemnto non ce n’è

    • signo scrive:

      Un forum? Credo sia un ottima idea!
      Ci avevo pensato all’inizio, ma non volevo creare troppe cose dispersive tipo blog con wordpress, forum con forumer, chat con chissacosa e cosi via…
      Bisognerebbe creare un sito fatto bene dove mettere all’interno tutto.
      Al momento riesco amalapena a tenere il blog, infatti non ho ancora inserito l’ultimo tutorial video con le spiegazioni. E’ presente solo su youtube al momento…
      Creare una comunity italiana è proprio il mio scopo, anche io come voi cercavo un punto di riferimento e non avendone trovati ho pensato di crearlo.
      Più persone siamo a lavorarci e più possiamo crescere.
      Non credo ci sia la necessità di crearlo adesso il sito, ma se sei interessato ti contatto tramite e-mail.
      ciaoo

  3. thomas scrive:

    Forse per ora sarebbe meglio far crescere questo…amministrandolo e creare una buona nicchia di utenti…

  4. sirtinity scrive:

    Ciao, finalmente ho installato cocos2d. Tuttavia se vado a compilare e far girare il “preparato” che il programma da di default quando si avvia un nuovo progetto cocos2s, mi segna 25 errori, faccio la stessa cosa che fai tu al 1.50 minuto del video, eppure i file del progetto sono i medesimi.
    Ad esempio: tra gli errori, per lui non vengono dichiarate le CCLayer, CCScene, CCDocument ecc..se non risolvo questo non possso andare avanti.
    Ah ho l’ultima versione sia di Xcode che di cocos2d (non beta).
    Ti ringrazio.

    • sirtinity scrive:

      Ok ho risolto così, ma premetto che è una soluzione piuttosto assurda.
      In pratica ho notato che nelle sottocartelle del progetto creato, precisamente nella cartella “libs” dove lui va a creare tutte le librerie necessarie, i vari file .h o .m come “CCAction.h”, “cocos2d.h”, “cocos2d.m” ecc… sono…..come dire vuoti! In pratica sono file di testo senza alcuna riga di codice all’interno. Così ho fatto: sono andato nella cartella originaria di cocos2d, ovvero quella scompattata dopo aver scaricato il programma in formato .gz (cocos2d-iphone-1.0.1) e mi sono copiato tutti i file delle librerie che si trovano all’interno delle sotto cartelle “cocos2d” e “cocoslive” e sono andato a sostituirli nelle sotto cartelle di “cocos2d” e “cocoslive” della cartella del progetto. Così dopo aver ricompilato ha finalmente riconosciuto CCLayer, CCScene e compagnia dicendo. Ma è assurdo fare una cosa del genere ad ogni progetto nuovo, dove sbaglio??

      Non è finita qui, perchè mi ritrovo un paio di errori nel file libreria “CLScoreServerRequest.m”:

      NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:receivedData error:&error];………………………l’errore sta nell’uso non dichiarato di “CJSONDeserializer”

      Poi circa 3 errori di quelli con il bollino giallo e non rosso, ma vediamo una cosa alla volta, è chiaro che io il codice non l’ho toccato per questo motivo mi stupisco di questi errori.

      • signo scrive:

        ciao! forse ho capito il tuo problema.
        Quando installi cocos entri nel terminal di mac, prima di tutto entri come amministratore con la password.

        Se non hai una password di amministrazione devi inserirla altrimenti non funziona.
        Scrivi “cd”, metti uno spazio e poi trascini la cartella di cocos nel terminal e premi invio.
        A questo punto la cartella di cocos non la devi più spostare da dove l’hai presa.

        Il punto che secondo me ti manca è che devi scrivere subito dopo nel terminal:
        “sudo ./install-templates.sh”

        Spero che così si risolva! ciao

  5. sirtinity scrive:

    Ciao signo grazie come sempre. Il fatto è che lo avevo anche installato come descritto sopra da te, se provo a reinstallarlo (la prima volta la certella si trovava sotto una cartella condivisa con win 7, la seconda volta ho provato a installarlo da cartella sotto il disco di mac os lion) mi dice che che il template è già installato, tuttavia ho forzato l’installazione con il parametro -f, installato perfettamente (almeno così sembra), ma mi ritrovo gli stessi problemi di prima…non ha senso che mi copia nel progetto le librerie vuote di codice😦 non posso andare avanti…..

    ps. l’ultima versione di xcode (che non pensavo fosse gratis boh) la 4.2.1 pesa “solamente” 1.68gb

    • signo scrive:

      Si si xcode è gratis.
      Io ho scaricato la versione xcode da 6.7 Gb (mi sembra) e dopo ho fatto l’aggiornamento al nuovo con altri 2 Gb circa.
      Il link per cocos è questo
      http://cocos2d-iphone.googlecode.com/files/cocos2d-iphone-1.0.1.tar.gz
      Prova a scaricarlo di nuovo.
      Quando lo hai scaricato fai lo stesso procedimento ma scrivi
      ./install-templates.sh -f -u
      Sempre con i permerri di root.
      Se non funziona troveremo un’altra soluzione.
      Per curiosità hai un mac o un hack?
      Prova a cambiare

      • sirtinity scrive:

        virtualizzo l’os sotto win 7 (con vmware) purtroppo….al momento non ho altra scelta, ma non penso che il problema sia questo, solo cocos mi da questo strano problema nella creazione di un nuovo progetto. Ho notato che tu nel video non metti la spunta su “Create local git repository for this project” al momento di scegliere la cartella di destinazione del progetto, beh fin’ora io di default l’avevo lasciata spuntata, nell’ultima prova l’ho tolta ma…….non cambia nulla, mah..

        ps. spero di essere andato sul sicuro con xcode e i suoi 1,68gb, sull’apple store c’è solo quello..

      • sirtinity scrive:

        niente…ti riporto la parte finale dell’istallazione usando il comando postato da te “./install-templates.sh -f -u” (a dire il vero sta volta non usato sudo):

        Installing Xcode 3 cocos2d Mac template
        —————————————————-

        …creating destination directory: /Users/max/Library/Application Support/Developer/Shared/Xcode/Project Templates/cocos2d 1.0.1/cocos2d Application – Mac/
        …copying template files
        …copying cocos2d files
        …copying CocosDenshion files
        done!
        …copying file templates
        …creating destination directory: /Users/max/Library/Application Support/Developer/Shared/Xcode/File Templates/cocos2d 1.0.1/

        Installing Xcode 3 CCNode file templates…
        —————————————————-

        done!
        Mahmood1s-Mac:cocos2d-iphone-1.0.1 max$

      • signo scrive:

        Ti ho scritto sulla mail, se funziona poi scrivo un riassunto per chi dovesse riscontrare questo problema. ciao

      • sirtinity scrive:

        Ciao signo grazie dell’email, ti ho risposto lì.

  6. Riccardo scrive:

    Ciao a tutti, ho un grosso problema nell’installare cocos2d. Dopo averlo scaricato ho preso la cartella e l’ho messa in un posto “sicuro”. Poi ho aperto il terminale e ho digitato cd (spazio compreso), ho “importato” la cartella e dopo aver premuto invio ho inserito il comando sudo ./install-templates.sh. Dopo questo passaggio il terminale mi ha chiesto la password, io l’ho inserita e ho cliccato invio anche se non uscivano i caratteri sullo schermo ma mi da sempre errore! Come posso risolvere? Grazie🙂

    • signo scrive:

      Se la tua password è nulla allora devi impostarla.
      Altrimenti prova con il comando:
      sudo ./install-templates.sh -f
      Se non funziona nemmeno in questo caso scrivi pure che proviamo con un’altra soluzione.
      ciao

      • Riccardo scrive:

        Cosa intendi dire per “password nulla”? Comunque ho gia provato anche con il comando -f alla fine ma niente da fare… Mi da sempre errore dopo aver inserito la password. Avrò scaricato il cocos2d una decina di volte ma non sono mai riuscito a installarlo anche cambiando i comandi. Per caso c’è un altro metodo per installarlo? Grazie mille🙂

  7. snaper10 scrive:

    Salve,
    ho appena installato Xcode 3.2.6 e ho seguito il tutorial n°3 e devo fare i complimenti.
    Comunque io ho installato Cocos2d ma quando vado a farlo partire come demo con Build e Run esce il simulatore IOS, e invece di comparire la scritta “Hello World”,l’applicazione crasha, cioè parte per un secondo e poi crasha. Come devo fare?

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...