Abans de res si vols provar la nostra versió antiga del nostre joc, entra al següent enllaç:

breakallthinks.cat/game

……………………………………………………………………………..

Creat amb el motor gràfic de UNITY 3D un dels programes mes famosos de la llista.

Lo primer que hem fet es la organització de la estructura dels fitxers dins de la carpeta Assets:

  • IMATGES
  • PREFABS
  • SCRIPTS
  • OBJECTES
  • MUSICA
  • MATERIALS
  • TEXTURES
  • PERSONATGES
  • ESCENES
  • DIALEGS

Primer hem creat una escena que es diu “escenaPRINCIPAL”, un altre “NIVEL1”, “INTRODUCCION”, “MENU_SKINS” guardada a la carpeta ESCENES:

Una vegada creat totes les escenes, hem creat uns GameObjects que son els personatges, dins de cada GameObject hi han varies imatges i aquestes imatges les hem posat de forma organitzada per que es vegi com una sola imatge, el  nom que li hem posat al personatge principal es el MIERDA4, amb un etiqueta (Tag) PERSONAJE, Aquest li hem afegit un ANIMATOR per animar el personatge:

Quan hem creat els personatges (gameobjects), hem creat un script que es diu “SALTO.cs” amb llenguatge <csharp> (C#), dins d’aquest script hem fet que cada vegada que es clica o es toca la pantalla del dispositiu, afegeixi una força al transform del personatge amb una variable de “rb” de Rigidbody, que despres li hem afegit el component de Rigidbody de gravetat i massa del GameObject:

Una vegada fet això li donem velocitat en el mateix script per que doni la sensació de que es mou, però abans li canviem el nom a l’script per PERSONAJE.cs i s’ho apliquem al personatge:

Ara el que hem fet es probar que funciona correctament i crear el prefab guardat a la carpeta de prefabs com tots els altres:

Ara el que fem es entrar a l’escena de NIVEL_1 i crear mes components (GameObject), el fons de l’escena, hem creat un “SCROLL_PARALLAX”, que el que fa es moure una imatge repetint el principi cada vegada que arriba al final de dreta a esquerra amb una velocitat afegida de una variable publica per modificar a traves de l’inspector encara que es pugui des de l’script.

Per crear el SCROLL hem tingut que crear 1 material:

Aquest material esta format per una imatge en format .PNG, casi totes les imatges en les que treballem son d’aquest format. Una vegada hem creat el material l’afegim al SCROLL i en el SCROLL li hem afegit un script que es diu “” per que puguem moure aquest material en la mateixa posició:

Això del NotificationCenter es un script public que ens hem descarregat a part, es bastant útil, la seva funció es comunicar des de un script fins a un altre, es a dir, envia un missatge a un altre script i si aquest missatge l’ha rebut dons que fagi això (RESUMIT).

Hem creat un altre prefab que es diu retrete, hem creat un altre etiqueta RETRETE (Tag) per declarar des de l’script del PERSONAJE que es un destructor de personatjes, es a dir, si el personatge colisiona amb ell el personatge mor al instant lo que faltaria crear el menu per quan el persontage mor aixi es podria tornar a repetir i no tindriem que estar donantli tota l’estona a play i pause:

Per ultim el que hem fet es crear el prefab i guardarlo dins el GameObject de RETRETE.

Hem pensat de crear unes monedes per que es pugui fer una puntuació però en comptes d’això hem creat un “murcielago”, després l’hem tornat a esborrar per que no ens acabava d’agradar i l‘hem deixat apartat per el moment.

També hem provat de afegir un GIF però hem vist que no es movia i també l’hem esborrat.

Hem creat el component “Civada”, li hem dit que es un destructor amb el mateix tag “RETRETE”, es a dir, tot component que tingui la etiqueta “RETRETE” matara al personatge. També hem animat el component civada donant voltes de 360º graus:

Hem creat un altre component (GameObject) de un tub que el que fa és girar cap a un sentit fent 360º graus amb la animació que li hem posat, desprès ho hem estat pensant i l’hem arreglat però quedava malament i al final l’hem esborrat.

Ens hem descarregat un altre script de AspectUtility.cs public que el que fa es: mantindre la relació d’aspecte de la pantalla amb el dispositiu que l’as iniciat l’aplicació o joc:

Hem fet que el personatge es mati cada vegada que colisiona amb un GameObject que tingui la etiqueta (Tag) “RETRETE”, abans només ho havíem declarat amb col·lisió i no funcionava, ara amb això si que mor cada vegada que colisiona.

A la càmera li hem afegit col·lisions rectangulars invisibles per les parts de a dalt i a baix que també tingui la etiqueta (Tag) “RETRETE” per que no es surti de la pantalla i no hi hagi cap trampa. També un altre col·lider amb l’escript “SUELO” per mantindre el personatge quiet fins que la persona que esta jugant toqui la pantalla del dispositiu i començi a saltar i correr el personatge juntament eliminant el GameObject que el mantenia:

Hem actualitzat el programa del motor gràfic a versions diferents i sense voler ens hem donat compte que no ens podíem compartir els fitxer que modificàvem cada 2 per 3 i hem tingut que actualitzar a una versió mes actualitzada a l’hora. (No funcionaba el Collab).

Hem fet que el personatge estigui tota l’estona animat, gracies a un company nostre que es diu Pau.C de la nostra clase ens ho ha ensenyat per que no ho trobavem i ell ja ho habia trobat: El “Loop Time” te que estar activat si no, només s’anima una vegada:

Hem creat un script que es diu “SEGUIR_PERSONAJE” guardat a la carpeta SCRIPTS que el que fa es que la càmera segueixi al personatge i que mantingui un marge de vaiable public flotant que es pot modificar des de l’inspector:

Ara la camara segueix al personatge.

Hem ordenat la escena de “NIVEL_1”:

Hem organitzat bé les carpetes amb les prefabs i tot ben clasificat per tipus de component i d’escenes, exemple de imatge:

Ara una vegada casi acabat la escena de “NIVEL_1” (Nomes falta fer el final de l’escena i puntuació), el que fem es entrar a l’escena de “INTRODUCCION” i començar a fer la introducció del nostre joc.

Dins de l’escena “INTRODUCCION”, hem copiat el SCROLL amb el seu script inclós i l’hem posat en aquesta escena i el material l’hem canviat per aquest:

El scroll li canviem la velocitat de moviment i li afegim un altre material, lo que el fons negre de la imatge es invisible, com habiem dit es un format .PNG

Al final el resultat del SCROLL queda així: Lo que cada material va mes rápid que l’altre:

El personatge de l’escena “NIVEL_1” també l’hem copiat en aquest per anant provant, si no tingues cap personatge ara mateix no podríem fer cap proba.

Amb el programa Adobe Photoshop CC hem creat uns diàlegs per que cada vegada que el personatge avanci uns metres per dir-ho així s’activi un només:
Cada dialeg es un prefab que es veu, és a dir, són GameObjects:

També hem creat el diàleg “BASE” per si més endavant tenim que fer els canvis d’idiomes, és bastant important i donaria mes puntuació al joc.

Hem tingut un altre problema amb el programa, cada vegada que li donàvem al Play del inspector és penjava per que hi havia un col·lapse total i hem tingut que tornar a una actualització anterior que havíem fet abans.

Hem creat GameObjects que són restes d’aliment que representen que estan dins de l’intesti i el personatge colisiona amb ells però por el moment no fan res, només tenen de component Rigidbody amb massa de 0,0001 i de gravetat 0 més colisió per que és pugui xocar amb ells:

Una mica mes endavant hem creat mes GameObjects com les restes d’aliment però la diferencia que tenen és que aquest no tenen Rigidbody, són objectes estàtics que no és mouen, aquests components tenen la etiqueta (Tag) “RETRETE”, és a dir que si el personatge colisiona amb un d’aquest GameObjects, mor:

Hem actualitzat els baters de l’escena “NIVEL_1” per que teniem un problema, no sortien a la pantalla però des de l’inspector si que el veiem, era una tonteria i ens vam tirar almenys 10 minuts per trobar el problema, el cas era que els baters estaven molt més aprop de l’eix “z”, és a dir, estaven enrere de la càmera, era per això.
Hem creat la puntuació de l’escena “NIVEL_1”, en el script “PERSONAJE” hem creat 2 variables, un Text que li indiquem l’objecte que conté el text i el int és el numero enter que és suma publicament a l’inspector i a la pantalla de l’escena on esta situat. Principalment el valor de int és 0 perque sempre comença per 0 logicament:

Hem creat un GameObject nou que al final ens hem decidit, ens ha fet gracia, és lo que serien les monedes, doncs en comptes de ficar monedes hem posat una mosca que cada vegada que el personatge colis-ioni amb ell és sumi 1 al contador, encara s’ha de programar: