Membuat game clicker sederhana dari awal

Dalam beberapa tahun terakhir, game dengan genre seperti "clickers" semakin populer. Saya sendiri sangat tertarik memainkannya, tetapi tidak kalah menarik untuk membuat game - clicker sendiri. Berkat mesin seperti Unity, membuat karya tidak akan sulit bahkan untuk pemula yang sederhana. Mari kita mulai bisnis.

Apa yang perlu dilakukan?


  1. Pikirkan mengapa dan apa yang harus kita klik?
  2. Apa yang harus terjadi ketika kita mengklik?
  3. Apa yang harus terjadi jika kita tidak mengklik?

Ketika saya menjawab pertanyaan-pertanyaan ini:

  1. Kita harus mengklik di mana saja di layar.
  2. Ketika diklik, objek harus berubah.
  3. Jika diabaikan, kerugian.

Akan seperti apa game itu?


Pemain harus memilih pedang atau perisai pada waktunya, tergantung pada apa yang akan jatuh dari atas. Yaitu, pedang itu jatuh - kami memilih pedang, perisai jatuh - kami memilih perisai. Jika Anda membuat pilihan yang salah, pemain akan kalah. Dengan kata lain, semuanya cukup sederhana, tetapi dalam implementasinya bahkan lebih sederhana.

Di mana saya bisa mendapatkan pemula untuk mengambil sprite dan latar belakang yang indah? Jawab: gambar dirimu.

Tidak ada yang rumit, seperti yang kita gambar di Adobe Illustrator. Bahkan jika Anda tidak memiliki pengalaman dalam menggambar, sekali lagi kami tidak kecewa, karena saya akan menunjukkan semuanya secara rinci.

Apa yang kita butuhkan:

  1. Pedang
  2. Perisai
  3. Latar belakang
  4. Cabang dengan daun

Sudah cukup.

Tekniknya sederhana dan saya akan tunjukkan dengan contoh pedang:

  1. Gambarkan kontur
  2. Isi dengan bunga
  3. Gambarlah bayangan



Dan itu saja, pedang kita sudah siap!

Kami juga melakukannya dengan orang lain. Jangan khawatir jika pada awalnya salah satu kreasi Anda akan tampak jauh dari ideal, karena bersama-sama mereka akan terlihat seperti lukisan Van Gogh. Lelucon. Atau mungkin juga tidak.







Latar belakang akan lebih rumit.

Gambar persegi panjang hijau dan gunakan gradien. Ini terlihat seperti ini:



Kita dapat mengatakan bahwa pelajaran seni telah berakhir dan kita akhirnya pergi ke Unity.

Pertama-tama, mari kita membuang sprite kita, dan seret pedang dan perisai ke jendela hierarki, karena kita perlu membuat cetakan dari mereka dan tidak hanya.



  1. Tambahkan Rigidbody 2D dan atur nilainya menjadi "0" di bidang Gravity Scale sehingga perisai berdiri di satu tempat.
  2. Tambahkan Circle Collider 2D dan centang kotak centang Is Trigger untuk melacak tindakan.

Dengan prefab, tindakan yang sama, hanya Anda yang perlu mengatur nilai "1" di bidang Gravity Scale sehingga perisai jatuh. Dan seret ke folder Rak itan. Dengan pedang aksi yang sama. Selesai!

Selanjutnya, hiasi game dengan sprite yang diambil sebelumnya. Hal pertama yang kita lempar adalah latar belakangnya.

  1. Tempatkan cabang di atas
  2. Tambahkan log di bawah ini
  3. Tempatkan jembatan di tengah



Rahasia desain utama adalah ini: kita akan menempatkan cabang di atas dan bawah, dan di tangga kita akan mengurangi nilai transparansi. Kenapa melakukan ini?

Faktanya adalah bahwa dengan cara ini kita menciptakan ilusi ruang tertentu. Tampaknya bagi pemain bahwa ada objek depan, belakang dan cakrawala. Dan ini luar biasa!

Sekarang buat tombol yang akan menempati seluruh layar. Untuk membuat tombol dalam hierarki, klik UI -> Tombol. Selanjutnya:

  1. Klik pada Warna.
  2. Kami menetapkan nilai "0" di bidang A, yang bertanggung jawab atas transparansi tombol kami.
  3. Kami memastikan bahwa tombol telah menjadi apa yang kami inginkan.



Dengan cara yang sama kami membuat teks untuk menunjukkan skor dan catatan kami saat ini.

Dan akhirnya, kami sampai pada pemrograman.

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; public class MainScript : MonoBehaviour { public GameObject[] prefabs; //  public GameObject[] players; //  public static int score,record,n,k = 0; //, , "n,k" -  public Text scoreT; //   void Start() { score = 0; Time.timeScale = 1; StartCoroutine (PrefabsCreate ()); scoreT = scoreT.GetComponent<Text> (); record = PlayerPrefs.GetInt ("Record"); } void Update() { n = Random.Range (0, prefabs.Length); //    // 0  -  scoreT.text = score + "/" + record; //     if (score >= record) { record = score; PlayerPrefs.SetInt ("Record", record); //   } } IEnumerator PrefabsCreate(){ //    while (true) { Instantiate (prefabs [n], new Vector2 (0, 6.5f), Quaternion.identity); yield return new WaitForSeconds (0.5f); } } public void BtnClick(string btn){ //    if(btn == "Click"){ Time.timeScale = 1; players [k].SetActive (false); //   (, ...) k++; if (k >= prefabs.Length) { k = 0; //  ,  k  -  } players [k].SetActive (true); //   (, ...) } } } 

Skrip kedua:

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class PlayerScript : MonoBehaviour { void OnTriggerEnter2D(Collider2D other){//   (, ) //     if (other.gameObject.tag != gameObject.tag) { Time.timeScale = 0; MainScript.score = 0; } else { MainScript.score++; Destroy (other.gameObject);//   } } } 

Apa yang terjadi dalam metode ini?

Mulai (). Itu dimulai setiap kali kita memulai permainan atau memulai kembali adegan. Segala sesuatu yang ditulis di dalam metode ini dilakukan hanya sekali. Oleh karena itu, kami menulis di sana: akun yang sama dengan nol, peluncuran coroutine (apa yang bertanggung jawab untuk membuat cetakan), nilai waktu.

Perbarui (). Jalankan sekali per frame. Sangat nyaman untuk menulis di sini yang terus diperbarui. Dalam kasus kami: indikator skor dan catatan, nilai acak n yang bergantung pada apa yang dibuat - pedang atau perisai.

BtnKlik (). Anda mungkin bertanya mengapa metode ini β€œpublik”? Kita membutuhkannya untuk direfleksikan dalam Unity itu sendiri dan kita dapat mengeja kata "Klik" untuk melacak tombol mana yang kita klik, meskipun hanya ada satu tombol, tidak ada salahnya orang tahu sedikit lebih banyak.



Di sini kita menulis apa yang harus terjadi setelah mengklik tombol. Ketika ditekan, itu harus berubah dari pedang ke perisai dan sebaliknya, mengatur nilai waktu ke "1", karena ketika kehilangan itu diatur ulang ke nol.

OnTriggerEnter2D (). Memeriksa tabrakan suatu objek. Jika tag kedua objek cocok, maka skornya bertambah satu, dan cetakannya dihancurkan. Jika tag berbeda, maka waktu kerugian berhenti dan skor diatur ulang.

Masih menambahkan tag yang sama ini. Dan ini sangat sederhana:

  1. Di jendela Inspektur, klik Tag.
  2. Dalam daftar drop-down di bagian paling bawah, klik Add Tag.
  3. Klik pada tanda plus dan beri nama tag seperti yang kita inginkan.



Setelah membuat, klik juga pada Tag dan pilih yang diinginkan.

Tetap mentransfer skrip ke objek yang diperlukan dan mengisi beberapa bidang. Buat objek kosong dan tambahkan skrip "Main Script", dan tambahkan "Player Script" ke pedang dan perisai kami.



Dengan penuh percaya diri, saya bisa mengatakan bahwa permainannya sudah siap. Kami meluncurkan dan menikmati kreasi pertama kami.



Semua keberuntungan dan keberuntungan di gamedev!

Source: https://habr.com/ru/post/id470103/


All Articles