Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pjv:laboratoare:2020:01 [2021/10/13 12:42]
alexandru.gradinaru
pjv:laboratoare:2020:01 [2021/10/13 16:13] (current)
alexandru.gradinaru
Line 3: Line 3:
 ==== Documentatie video ===== ==== Documentatie video =====
  
-video 1  +[[https://​youtu.be/​3FYJD6sXT74|1. Introducere in Editorul Unity]] 
-video 2+ 
 +[[https://​youtu.be/​IjfsxhF7mH4|2. Introducere in scriptingul Unity]]
  
 ==== Documentatie extinsa text ===== ==== Documentatie extinsa text =====
  
-[[https://​ctipub-my.sharepoint.com/:​b:/​g/​personal/​alexandru_gradinaru_upb_ro/​EX9JzUQOGiJDljh770eC9ioBESCT7N3_TR4CdKBhidDgOg?​e=6GMORk|1. Introducere in Unity]]+[[https://​ctipub-my.sharepoint.com/:​b:/​g/​personal/​alexandru_gradinaru_upb_ro/​EX9JzUQOGiJDljh770eC9ioBESCT7N3_TR4CdKBhidDgOg?​e=6GMORk|1. Introducere in Editorul ​Unity]]
  
-[[http://example.com|2. Introducere in scriptingul Unity]]+[[https://ctipub-my.sharepoint.com/:​b:/​g/​personal/​alexandru_gradinaru_upb_ro/​EXdRYNImL8VGryfKsurcUqQBx5af0KLN2pMN-AaicOM6VA?​e=eMLA0T|2. Introducere in scriptingul Unity]]
  
 <note important>​Aveti documentatie video si text extinsa, dar si un sumar cu elementele principale necesare in rezolvarea laboratorului,​ pentru cei care au mai lucrat deja cu Unity si sunt familiarizati cu anumite concepte. </​note>​ <note important>​Aveti documentatie video si text extinsa, dar si un sumar cu elementele principale necesare in rezolvarea laboratorului,​ pentru cei care au mai lucrat deja cu Unity si sunt familiarizati cu anumite concepte. </​note>​
Line 180: Line 181:
  
 === C# Basics === === C# Basics ===
- 
-> **Classes and Structures** 
- 
-One of the basic design decisions every framework designer faces is whether to design a type as a **class (a reference type)** or as a **struct (a value type)**. 
- 
-**Similarities:​** 
- 
-  * Both are _container_ types,​ meaning that they contain other types as members. 
-  * Both have members, which can include constructors,​ methods, properties, fields, constants, enumerations,​ events, and event handlers. 
-  * Members of both can have individualized access levels. For example, one member can be declared `Public` and another `Private`. 
-  * Both can implement interfaces. 
-  * Both can have shared constructors,​ with or without parameters. 
-  * Both can expose a _default property_, provided that property takes at least one parameter. 
-  * Both can declare and raise events, and both can declare delegates. 
- 
-**Differences:​** 
- 
-The Main difference between reference types **(Class)** and value types **(Struct)** we will consider is that reference types are allocated on the heap and garbage-collected,​ whereas value types are allocated either on the stack or inline in containing types and deallocated when the stack unwinds or when their containing type gets deallocated. 
- 
-  * Structures are **_value types_**; classes are **_reference types_**. A variable of a structure type contains the structure'​s data, rather than containing a reference to the data as a class type does. 
-  * Structures use stack allocation; classes use heap allocation. 
-  * All structure elements are `Public` by default; class variables and constants are by `Private` default, while other class members are by `Public` default. 
-  * A structure must have at least one nonshared variable or nonshared, noncustom event element; a class can be completely empty. 
-  * Structure elements cannot be declared as `Protected`;​ class members can. 
-  * Structures are not inheritable;​ classes are. 
-  * A structure does not require a constructor;​ a class does. 
  
 > **Static Classes and Singleton** > **Static Classes and Singleton**
Line 550: Line 525:
  
   - Configurati scena pentru rulare 2D   - Configurati scena pentru rulare 2D
-  - Adaugati in scena o imagine care reprezinta o tabla de joc (masa) +  - Adaugati in scena o imagine care reprezinta o tabla/​fundalul ​de joc (masa) 
-  - Adaugati doua imagini in scena: ​+  - Adaugati doua imagini ​suprapuse ​in scena*
     - unul care sa reprezinte elementul ascuns ​     - unul care sa reprezinte elementul ascuns ​
     - unul care sa reprezinte elementul afisat     - unul care sa reprezinte elementul afisat
-  - Scriptati elementul afisat astfel incat la click sa se ascunda si sa se afiseze cel ascuns +  - Scriptati/​programati ​elementul afisat astfel incat la click pe acesta ​sa se ascunda si sa se afiseze cel ascuns ​timp de cateva secunde (2-3 secunde de exemplu, apoi revine la elementul ascuns) 
-  ​Colectati inca imagini pentru elementele afisate +  - Colectati alte imagini si realizati ​un grid de 4x4 sau 4x2 elemente ​generat aleator la fiecare rulare controlat de un script ​(game controllercare sa asigure: 
-  - Realizati ​un game controller in care sa scriptati urmatoarele +    - instantierea dinamica ​gridului si formarea ​de perechi ​(in scena trebuie sa fie perechi de elemente ​astfel incat utilizatorul trebuie sa selecteze 2 elemente care coincid pentru a castiga punctaj) 
-    - instantierea dinamica a unui grid de 4x4 sau 4x2 elemente (primul este deja instantiat+    ​amestecarea elementelor ​la fiecare rulare ​(elementele afisat trebuie sa fie pozitionat/​afisat intr-un slot diferit la fiecare ​rulare noua)
-    - pozitionarea random ​tipurilor ​de elemente ​(in scena trebuie sa fie perechi de elemente - deci vor fi 8 perechi pozitionate random ​la fiecare rulare+
-    ​schimbarea dinamica a imaginii in functie de tip pentru ​fiecare ​element din scena+
     - mentinerea elementelor selectate curent (se selecteaza o data maxim 1 pereche)     - mentinerea elementelor selectate curent (se selecteaza o data maxim 1 pereche)
     - rularea asincrona a verificarii daca perechea a fost selectata sau nu corect     - rularea asincrona a verificarii daca perechea a fost selectata sau nu corect
     - mentinerea si afisarea unui scor. Scorul creste atunci cand descoperiti doua elemente identice.     - mentinerea si afisarea unui scor. Scorul creste atunci cand descoperiti doua elemente identice.
-  - Adaugati un buton de restart game+  - Adaugati un buton de restart game (acest lucru va regenera gridul cu elemente amestecate)
  
 {{ :​pjv:​laboratoare:​2020:​lab1_example.gif?​600 |}} {{ :​pjv:​laboratoare:​2020:​lab1_example.gif?​600 |}}
  
 +<note tip>* exista mai multe variante de abordare a rezolvarii: de exemplu folosind elemente de canvas sau folosind elemente de scena pe care se ataseaza collidere (aveti grija la conditiile de activare a evenimentelor de mouse)</​note>​
  
pjv/laboratoare/2020/01.1634118130.txt.gz · Last modified: 2021/10/13 12:42 by alexandru.gradinaru
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0