Guruh talabasi Nutfulloyev Sohibning Dasturlash uslublari va paradigmalar fanidan Mustaqil ishi
Download 1.25 Mb.
|
MutaqilIsh
312-20 guruh talabasi Nutfulloyev Sohibning Dasturlash uslublari va paradigmalar fanidan Mustaqil ishi“CUBE Tower” o’yin dasturiOOP qo’llanilgan qismusing UnityEngine;using UnityEngine.UIElements;public class ExplodeCubes : MonoBehaviour{public GameObject explosion;private bool _collisionSet;private void OnCollisionEnter(Collision other)….GameObject newVfx = Instantiate(explosion, new Vector3(other.contacts[0].point.x,other.contacts[0].point.y,other.contacts[0].point.z), Quaternion.identity) as GameObject;Destroy(newVfx,2.0f);Destroy(other.gameObject);_collisionSet = true;}}}Yuqoridagi kod qismida biz dassturda ExplodeCubes classi MonoBehaviour classidan voris olingan holatda yaratilganini ko’rishimiz mumkin. MonoBehaviour classi Unity muhitining Standart classleridan biri bo’lib o’yin obyektlari classlarini yaratishda qo’llanilinadi. Bu class ichida o’yin obyetkida mavjud bo’lgan standart maydonlar kiritilgan va bu maydonlarni qayta kitirish talab etilmaydi
OOPstruct CubePos{public int x, y, z;public CubePos(int x,int y,int z){this.x = x;this.y = y;this.z = z;}public Vector3 getVector(){return new Vector3(x, y, z);}public void setVector(Vector3 pos){x = Convert.ToInt32(pos.x);y = Convert.ToInt32(pos.y);z = Convert.ToInt32(pos.z);} }Yuqoridagi kodda OOPda struktura yaratilganini ko’rishimiz mumkin. CubePos o’yinda yaratilgan kublarning pozitsiyasi ya’ni uch o’lchamli fazoda qo’yilgan o’rnini kordinatalar ko’rinishida saqlab turadi.Yuqoridagi kodda OOPda struktura yaratilganini ko’rishimiz mumkin. CubePos o’yinda yaratilgan kublarning pozitsiyasi ya’ni uch o’lchamli fazoda qo’yilgan o’rnini kordinatalar ko’rinishida saqlab turadi.Ushbu rasmda Birinchi o’rinda turgan kubning koordinatalarini ko’rishimiz mumkin. Uning koordinatalari XYZ (0, 1, 0) ko’rinishida sasqlangan Deklarativ dasturlash paradigmasi
DeklarativSpawnPositions();//deklorativMoveCameraChangeBg();//deklorativ}if(!islose && allcubesrb.velocity.magnitude > 0.2f){islose = true;Destroy(cubeToPlace.gameObject);StopCoroutine(showCubePlace);restartButton.SetActive(true);//deklorativ}Imperativ Dasturlash
private void OnCollisionEnter(Collision other)
Yuqoridagi misolda OnCollisionEnter funksiyasining imperative ko’rinishi keltirilgan. Bunda kublarning kolliziyaga kirishi ya’ni minoraning yerga qulashi paytida ishlashi kerak bo’lgan kod qo’llanilgan. Masalan, o’yin tugagani haqida xabar beruvchi maxsus ovoz berilishi, kubli minoraning mayda kublarga bo’linib ketishi va kameraning qaltirashi kabi amallar bajariladi.
E’tiboringiz uchun rahmat!Download 1.25 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling