Primitif dan Logika

Artikel ini terutama memperkenalkan konsep yang terkait dengan editor primitif dan primitif di CraftLand.

Gambaran Umum Metablocks

Saat mengedit grafik, kita perlu memperhatikan bentuk setiap blok grafik. Yang perlu kita lakukan adalah menyusun blok-blok ini menurut aturan yang ditetapkan.

Operasi Dasar

Sebelum kita masuk ke editor primitif, kita harus membuka skrip terlebih dahulu. Buka CraftLand, klik More di pojok kiri atas, lalu klik Block Script. Saat kita masuk ke editor primitif, kita akan membuka ‘skrip global’ secara default.
gambar-20241031110011453

Pengenalan Antarmuka

Setelah memasuki editor elemen, ada 4 area di antarmuka editor yang patut mendapat perhatian kita, seperti yang ditunjukkan pada gambar di bawah ini. SeaTalk_IMG_20241031_113903

Nomor Seri Gambar Deskripsi
1 image-20241031114641450 Di pojok kiri atas antarmuka terdapat kotak pencarian. Karena ada banyak blok primitif, kita dapat mengambil blok primitif yang kita inginkan dengan memasukkan kata kunci di kotak pencarian.
2 image-20241031114811375 Di sudut kanan atas antarmuka terdapat daftar pilihan skrip. Klik ikon di sebelah kanan untuk menampilkan opsi tarik-turun, yang menunjukkan skrip yang tersedia saat ini. Skrip global dibuat secara default.
3 image-20241031173408111 Kami membagi primitif menjadi 6 kategori. Kami dapat mengeklik ikon kategori untuk memperluas daftar blok primitif.
4 image-20241031114830172 Ikon di sebelah kiri adalah tombol batal, yang dapat membatalkan operasi terakhir. Ikon di sebelah kanan adalah tombol ulangi, yang dapat mengulang operasi terakhir yang dibatalkan.

Tempat Primitif

1. Tarik blok: Setelah memahami antarmuka, pertama-tama kita buka kategori pertama di sudut kiri bawah, pilih blok primitif darinya, dan seret ke ruang kosong sebagai titik awal logika kita. gambar-20241031171419878

2. Blok penghubung: Kita pilih blok dengan cekungan di bagian atas dari daftar blok. Kita akan menemukan bahwa saat kita menyeret blok ke bagian bawah blok awal, akan ada perintah UI berwarna kuning di bagian yang timbul di bawah blok awal. Saat kita melepaskan jari, kita akan menemukan bahwa kedua blok akan secara otomatis diserap bersama. Maka kita telah menyelesaikan logika sederhana. gambar-20241031171627914

3. Mengisi data: Pertama, kita tarik keluar data dalam blok primitif atau tarik keluar tipe data yang sesuai dalam daftar primitif.

gambar-20241031174335831

Kemudian seret blok data ke ruang data yang sesuai. Kotak perintah UI berwarna kuning akan muncul di ruang data, yang menunjukkan bahwa jenis blok saat ini dapat ditempatkan. Saat Anda melepaskan jari, blok data akan secara otomatis diserap ke dalam ruang tersebut. gambar-20241031175503431

Catatan: Bila tipe data yang diisi tidak konsisten dengan tipe data dalam spasi, editor akan memberikan perintah yang jelas dan secara otomatis memunculkan blok data yang tidak cocok dengan tipe tersebut.

gambar-20241031183111256

4. Membongkar blok: Saat kita memindahkan salah satu dari beberapa blok grafik yang saling terhubung, semua blok yang terhubung di bawahnya akan ikut terbuang bersama-sama.

gambar-20241031182555866

5. Hapus blok: Saat Anda menekan dan menahan blok grafik apa pun, ‘tong sampah’ akan muncul di sisi kanan antarmuka. Kita dapat menghapus blok grafik dengan memindahkannya ke tong sampah.

gambar-20241031182311721

Tentu saja, kita juga dapat menyeret beberapa blok ke ‘tong sampah’ untuk menghapus beberapa blok sekaligus.

gambar-20241031183322347

Bentuk

Deskripsi Blok Ikon
Hanya blok yang ditinggikan di bawah yang merupakan titik awal suatu logika. image-20241030185836296
Blok dengan hanya bagian atas yang cekung biasanya merupakan titik akhir dari suatu logika. image-20241030185844004
Jika tidak ada depresi di bagian atas dan tidak ada tonjolan di bagian bawah, berarti blok ini adalah bagian data, yang dapat diterapkan ke blok lain sebagai parameter dalam beberapa operasi logika. image-20241030185856813
Jika sebuah blok memiliki bagian atas yang ditinggikan dan bagian bawah yang cekung, artinya blok tersebut dapat dihubungkan ke blok lain dengan bagian bawah yang ditinggikan dan juga dapat dihubungkan ke blok lainnya di bawahnya. Itu dapat menjadi simpul logika. image-20241031101239718
Dalam klasifikasi blok, kita akan menemukan blok dengan bentuk khusus. Blok khusus ini adalah ekspresi kondisional, yang dibagi menjadi konveksitas eksternal dan area cekung serta konveksitas internal dan area cekung. Kita dapat menghubungkan blok lain secara normal pada konveksitas eksternal dan area cekung dari blok ekspresi kondisional seperti menghubungkan blok lain, atau kita dapat menautkan blok di dalam ekspresi kondisional, dan logika yang ditulis di dalamnya perlu memenuhi logika kondisional tertentu sebelum dapat dihitung. image-20241031101800841

Klasifikasi

Untuk menemukan blok yang dibutuhkan secara lebih efisien dalam editor primitif, kami membagi blok menjadi 7 jenis.

Seperti yang ditunjukkan pada gambar berikut:

Jenis Diagram Gambaran Umum
Insiden SeaTalk_IMG_20241030_143100 Jenis peristiwa: Umumnya, sebagai titik waktu saat logika dimulai, saat kita menulis logika primitif, pertama-tama kita perlu mengklarifikasi pada titik waktu mana kita ingin logika ini dipicu. Misalnya, saat pemain dibangkitkan, kita ingin memberinya senjata atau saat ronde dimulai, kita ingin menempatkan kotak pasokan airdrop di tengah peta, lalu ‘Saat pemain dibangkitkan’ dan ‘Saat ronde dimulai’ adalah simpul waktu yang diperlukan untuk logika ini.
Entitas SeaTalk_IMG_20241030_143101 Jenis entitas: adalah konsep penting dalam CraftLand (lihat ‘Konsep penting’ untuk detailnya). Dalam proses penyuntingan primitif, kita sering memanggil atau mengubah properti suatu entitas.
Game SeaTalk_IMG_20241030_143105 Jenis Game: Di Jenis Game, kami menyediakan banyak fungsi yang umum digunakan untuk kreator CL. Fungsi-fungsi ini biasanya berupa pengaturan yang sering perlu disesuaikan di beberapa game. Fungsi-fungsi ini juga sangat terkait dengan gameplay, seperti membuat monster, mengubah skybox, atau bergabung dengan voice channel.
Data SeaTalk_IMG_20241030_143106 Tipe data: Blok data dapat berupa parameter yang diperlukan untuk sebagian besar operasi logis. Data dapat berupa bagian data yang digunakan di blok lain, atau bagian operasi untuk menghitung nilai.
Logika SeaTalk_IMG_20241030_143109 Jenis logika: Dalam jenis logika, kami menyediakan beberapa operasi logika yang kompleks. Jenis operasi logika ini sering digunakan saat memproses data. Jenis ini dapat menyaring, menilai, atau membuat keputusan berdasarkan kondisi tertentu. Misalnya, menentukan apakah suatu angka lebih besar dari angka lain, lalu memutuskan untuk mengambil tindakan yang berbeda.
Variable SeaTalk_IMG_20241030_143111 Tipe variabel: Dalam tipe variabel, kita dapat membuat variabel sendiri. Variabel yang dibuat dengan cara ini adalah variabel skrip, yang digunakan untuk pemrosesan data skrip saat ini. Dalam skrip lain, variabel dapat diperoleh dan ditetapkan melalui referensi eksternal.
Function SeaTalk_IMG_20241030_143113 Jenis fungsi: Dalam jenis fungsi, Anda dapat membuat peristiwa khusus. Peristiwa khusus yang kami buat dapat merangkum sebagian logika, membuat logika lebih jelas, lebih mudah dipahami, dan dikelola.

Deskripsi Blok Elemen Logika

Blok kata benda Diagram Deskripsi
Pernyataan bersyarat (pernyataan if) image-20241104111959461 Jika kondisinya terpenuhi, node di bawah IF akan dieksekusi.
Pernyataan bersyarat…else(if…else statement) image-20241104112010284 Jika kondisi terpenuhi, node di bawah IF akan dieksekusi. Jika kondisi tidak terpenuhi, node di bawah ELSE akan dieksekusi.
Perulangan bersyarat (pernyataan while) image-20241104112023063 Selama kondisinya terpenuhi, node di bawah ini akan dijalankan dalam satu perulangan.
Perulangan integer rage (untuk pernyataan indeks) image-20241104112033968 Parameter i dimulai dari nilai minimum, dan setiap kali node yang lebih rendah dijalankan, i meningkatkan nilai langkah hingga i lebih besar dari atau sama dengan nilai maksimum.
Ulangi setiap elemen (untuk setiap pernyataan) image-20241104112043683 Untuk setiap KEY dalam daftar/kamus parameter, jalankan node di bawah ini satu kali.
Periksa null image-20241104112050652 Periksa apakah itu nilai null dan tangani nilai null dengan tepat untuk menghindari kesalahan.
Lanjutkan ke berikutnya image-20241104112056253 Lewati putaran ini dan masuk ke putaran berikutnya pada badan putaran.
Putuskan loop image-20241104112103316 Putuskan loop dan lanjutkan mengeksekusi node setelah badan loop.

Apa itu ECA?

Dalam konteks kode, ECA (Event-Condition-Action) biasanya merujuk pada metode representasi aturan.

I. Komponen

  1. Acara

    • Situasi atau kejadian tertentu yang memicu pelaksanaan aturan. Misalnya, seorang pemain memasuki permainan, seorang pemain menyebabkan terjadinya pembunuhan, atau seorang pemain meninggalkan permainan.

    Contoh: Pemain menyebabkan pembunuhan, dan setelah memicu peristiwa ini, pemain menerima 100 koin emas. SeaTalk_IMG_20241101_114133

  2. Kondisi

    • Ekspresi logika yang menentukan apakah akan melakukan tindakan berikutnya setelah suatu peristiwa terjadi. Tindakan terkait hanya akan dilakukan jika kondisinya benar. Misalnya, jika jumlah zombi kurang dari 10, buat zombi, jika jumlah pemain sama dengan 1, dapatkan senapan Gatling, atau jika koordinat pemain sama dengan nilai tertentu, pindahkan pemain ke koordinat lain.

    Contoh: Saat seorang pemain bergabung dalam permainan dan memiliki mikrofon, namanya akan menjadi ‘Saya punya mikrofon’. SeaTalk_IMG_20241101_143623

  3. Aksi

    • Jika peristiwa terjadi dan kondisinya terpenuhi, tindakan tertentu akan dilakukan. Tindakan ini dapat berupa mengubah data, memanggil fungsi, mengirim pesan, memicu peristiwa lain, dll.

    Contoh: Berikan pemain AK47 di awal ronde dan atur kesehatan pemain menjadi 500. SeaTalk_IMG_20241101_145943

Konsep penting dalam ECA

Nama Konsep Deskripsi
Fungsi Fungsi (sering disebut metode) adalah blok kode yang dapat digunakan kembali yang menjalankan tugas tertentu. Fungsi merangkum operasi atau tugas tertentu dalam blok metode yang independen, sehingga operasi dan logika menjadi lebih modular dan mudah dikelola. Kode eksternal dapat menjalankan tugas tertentu dengan memanggil fungsi tanpa harus memahami detail implementasi fungsi tersebut.
Parameter Parameter adalah nilai yang diberikan ke fungsi atau metode saat dipanggil. Parameter meliputi parameter formal dan parameter aktual, yang dapat dibagi menjadi beberapa jenis parameter untuk memberikan fleksibilitas dan transfer data, dll.
Enumerasi Enumerasi adalah konsep pengumpulan data yang konstan, seperti enumerasi metode serangan, yang dapat berisi opsi seperti jarak dekat, tembak-menembak, ledakan, dll. Jenis enumerasi yang berbeda tidak dapat ditetapkan satu sama lain, meskipun nilainya mungkin sama, mereka tidak dapat ditetapkan karena semantik yang berbeda.

Peristiwa khusus & variabel khusus

Acara Kustom

Di pojok kiri bawah editor elemen, kita dapat menemukan total tujuh jenis daftar elemen. Di jenis fungsi, kita dapat mengeklik CREATE FUNCTION untuk membuat acara khusus. SeaTalk_IMG_20241101_150402

SeaTalk_IMG_20241101_150359

Tinjauan Umum Antarmuka Acara Kustom

Nomor Seri Gambar Deskripsi
1 image-20241101151951739 Di sini kita dapat mengisi nama acara khusus.
2 image-20241101151917848 Klik tanda tambah untuk menambahkan parameter internal ke acara khusus. Parameter ini hanya dapat digunakan di acara khusus tempat parameter tersebut berada.
3 image-20241101151927435 Klik tanda tambah di sudut kanan bawah untuk menambahkan nilai balik ke peristiwa kustom kita. Saat kita memanggil peristiwa ini dalam logika algoritme lain, kita bisa mendapatkan data yang kita inginkan.

Deskripsi acara khusus

Saat mengedit primitif, kami akan mengintegrasikan beberapa blok primitif ke dalam peristiwa khusus. Kami juga dapat mengatakan bahwa kami merangkum beberapa logika kalkulasi dalam satu metode. Ada beberapa keuntungan melakukan hal ini:

1. Penamaan yang jelas: Menggunakan peristiwa yang dienkapsulasi, kita tidak perlu membaca logika blok primitif yang kompleks, kita dapat memahami seluruh maksud logika peristiwa hanya dengan memberi nama.

2. Sederhanakan struktur primitif: Enkapsulasi kalkulasi kompleks dalam peristiwa kustom dapat membuat logika struktur utama lebih ringkas dan jelas, mengurangi kompleksitas struktur primitif, dan meningkatkan keterbacaan.

3. Penggunaan ulang: Jika beberapa blok logika grafis memerlukan operasi yang sama, Anda dapat menggunakan ulang peristiwa kustom yang dienkapsulasi untuk menghindari penulisan logika grafis yang sama berulang kali. Tidak hanya itu, saat kita mengubah dan memelihara peristiwa kustom ini, kita juga dapat mengubah beberapa blok logika grafis yang menggunakan ulang peristiwa kustom tersebut pada saat yang sama untuk menghindari perubahan kode yang sama berulang kali di beberapa tempat.

Variabel Khusus

Tinjauan Umum Antarmuka Variabel Kustom

Dalam daftar jenis elemen, pilih jenis VARIABLE, lalu klik CREATE VARIABLE untuk membuat variabel khusus. gambar-20241101162644288

Saat membuat variabel khusus, kita dapat mengatur nama variabel dan tipe data variabel. gambar-20241101162620704

Deskripsi variabel kustom

Saat kita menulis logika grafis, terkadang kita perlu menentukan variabel parameter tipe data sesuai dengan kebutuhan tertentu. Fungsi variabel kustom dapat mengatasi kebutuhan ini.

Variabel yang Anda buat juga dapat digunakan untuk meneruskan data antar metode yang berbeda. Dengan menyimpan data dalam variabel, Anda dapat meneruskannya sebagai parameter ke metode lain atau mengembalikannya dari suatu metode ke pemanggil.

Contoh Acara/Variabel Khusus

Kami akan membuat logika untuk menunjukkan cara menggunakan peristiwa kustom dan variabel kustom di editor primitif.

Contoh logika: Ketika seorang pemain membunuh seseorang, batas kesehatan pemain akan berkurang 10 poin, dan minimum akan dikurangi menjadi 20.

  1. Pertama, kita buat variabel khusus bernama ‘CurrentMaxHp’ dan tetapkan tipe data ke ‘int’. Pada saat yang sama, kita buat event khusus bernama ‘DecreaseMaxHp’ sebagai persiapan awal. SeaTalk_IMG_20241101_175037

SeaTalk_IMG_20241101_175059

  1. Temukan dan seret event ‘Saat pemain menyebabkan pembunuhan’, dan hubungkan ke event khusus ‘DecreaseMaxHp’ yang baru saja kita buat. Setelah menghubungkan, kita telah menyelesaikan dasar logis untuk mengurangi batas kesehatan pemain saat pemain membunuh. SeaTalk_IMG_20241101_183151

  2. Setelah menyelesaikan logika dasar, kita dapat mulai menulis struktur primitif dari custom event. Pertama, kita tetapkan nilai variabel yang baru saja kita buat. SeaTalk_IMG_20241101_183704

  3. Selanjutnya, hubungkan algoritma untuk menyetel variabel ke -10 setiap kali suatu peristiwa dipicu. SeaTalk_IMG_20241101_183713

  4. Menambahkan batas kesehatan minimum, menambahkan tanda centang jika batas kesehatan saat ini kurang dari atau sama dengan 20, maka batas kesehatan saat ini sama dengan 20. SeaTalk_IMG_20241101_183808

  5. Tetapkan kembali variabel yang dihitung ke atribut batas hidup pemain. Sejauh ini, kita telah menyelesaikan semua logika yang diperlukan. SeaTalk_IMG_20241101_183902

  6. Verifikasi. SeaTalk_IMG_20241101_184513

Batas kesehatan dikurangi dengan benar dan diverifikasi dengan benar. image-20241101184737595