This shows you the differences between two versions of the page.
pjv:laboratoare:02 [2018/10/17 16:11] alexandru.gradinaru |
pjv:laboratoare:02 [2019/10/16 15:50] (current) alexandru.gradinaru |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Elemente de programare a jocurilor 2D ===== | + | ===== Introducere in 2D ===== |
Line 27: | Line 27: | ||
<code> | <code> | ||
newobj = Instantiate(objTemplate) as ObjType; | newobj = Instantiate(objTemplate) as ObjType; | ||
+ | |||
+ | //from pregab - prefab must be in Resources folder | ||
+ | newobj1 = Instantiate(Resources.Load("enemy")); | ||
+ | |||
+ | // Instantiate the projectile at the position and rotation of this transform | ||
+ | Rigidbody projectile; | ||
+ | Rigidbody clone; | ||
+ | clone = Instantiate(projectile, transform.position, transform.rotation); | ||
enemyOrc = Instantiate(Orc) as Enemy; | enemyOrc = Instantiate(Orc) as Enemy; | ||
Line 43: | Line 51: | ||
transform.Rotate(Vector3.up * Time.deltaTime, Space.World); | transform.Rotate(Vector3.up * Time.deltaTime, Space.World); | ||
+ | </code> | ||
+ | |||
+ | === Random === | ||
+ | |||
+ | Pentru a genera valori random puteti folosi clasa Random | ||
+ | |||
+ | <code> | ||
+ | |||
+ | Random.Range(-10.0f, 10.0f) | ||
+ | Random.Range(0, 8); | ||
+ | |||
</code> | </code> | ||
Line 63: | Line 82: | ||
myObject.GetComponent<Text>().text = '123' //setarea unui text | myObject.GetComponent<Text>().text = '123' //setarea unui text | ||
+ | </code> | ||
+ | |||
+ | De asemenea se pot accesa elemente copil sau parinte | ||
+ | <code> | ||
+ | childObject=parentObject.GetChild("child_name"); | ||
+ | |||
+ | //setarea unei componente a elementului copil | ||
+ | parentObject.GetChild("child_name").GetComponent<SpriteRenderer>().sprite = image; | ||
</code> | </code> | ||
Line 91: | Line 118: | ||
void OnMouseDown() | void OnMouseDown() | ||
{ | { | ||
- | this.SetActive(false); | + | gameObject.SetActive(false); |
} | } | ||
| | ||
</code> | </code> | ||
- | Atentie! Aceasta functie este activa doar in cazul in care utilizatorul apasa cu mousul peste un elemente de UI sau un Collider. | + | <note important>Atentie! Aceasta functie este activa doar in cazul in care utilizatorul apasa cu mouseul peste un elemente de UI sau un Collider</note> |
- | | + | |
=== Cerinte === | === Cerinte === | ||
- | Realizarea unui joc 3D de momorare | + | Realizarea unui joc 2D de memorare |
Line 110: | Line 136: | ||
- 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 elementul afisat astfel incat la click sa se ascunda si sa se afiseze cel ascuns | ||
- | - Realizati un game controller astfel incat sa mentineti sa afisati un scor. Scorul creste atunci cand descoperiti doua elemente identice. | + | - Colectati inca 3 imagini pentru elementele afisate |
+ | - Realizati un game controller in care sa scriptati urmatoarele | ||
+ | - instantierea dinamica a unui grid de 4x4 elemente (primul este deja instantiat) | ||
+ | - pozitionarea random a 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) | ||
+ | - 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. | ||
+ | - Adaugati un buton de restart game | ||