Langsung ke konten utama

Construct 2 Indonesia Manual: Bab Elemen Dasar (Project Primitives) - 4. Object 8. Container (Wadah/Penampung)

Container adalah fitur canggih untuk memudahkan membangun gabungan (composite) Object – yaitu elemen game Anda yang dibuat dari beberapa Object. Misalnya: sebuah ‘Tank’ dalam game strategi mungkin terdiri dari dua bagian: Sprite untuk basis (Base) dari ‘Tank’, dan Sprite yang berbeda untuk menara (Turret) dari ‘Tank’. Hal ini memungkinkan mereka untuk berputar secara independen. Menambahkan keduanya ke dalam Container sehingga memungkinkan Event untuk memperlakukan kedua Object itu seolah-olah hanya satu, karena selalu dipadukan.

Penting untuk mengetahui bagaimana Event bekerja untuk memahami bagaimana Container bekerja. Lihat bagian Elemen Dasar - 5.1. Cara kerja Event.


Membuat Container

Untuk menambahkan Object ke Container, pilih salah satu Object yang Anda inginkan dalam Container dan klik link Create di Properties Bar (yang muncul di bawah kategori Container di sebelah label No Container). Dialog terbuka memungkinkan Anda memilih Object untuk ditambahkan ke Container.

Selanjutnya, Object dapat ditambahkan ke Container dengan mengklik link Add Object dalam kategori Container lagi. Object bisa dilepas dengan mengklik link Remove.


Apa yang dilakukan Container

Menempatkan Object dalam Container memiliki Effect berikut:

  1. Jika satu Object dalam Container dibuat (Created), setiap Object lain dalam Container yang terkait juga otomatis dibuat.

  2. Jika satu Object dalam Container dihapus (Destroyed), setiap Object lain yang terkait dalam Container juga hilang (Destroyed).

  3. Jika suatu Condition memilih (Pick) satu Object dalam Container, setiap Object terkait lainnya dalam Container juga diambil (Picked).


Dua poin pertama pada dasarnya menjamin bahwa ada jumlah Instance yang sama untuk semua Object dalam sebuah Container. Dengan kata lain, Container dibuat dan dihapus secara keseluruhan. Dengan menggunakan Container: ‘Base’ dan ‘Turret’ dari ‘Tank’, tidak mungkin membuat ‘Tank base’ tanpa juga secara otomatis mendapatkan ‘Turret’ baru untuknya juga.

Poin ketiga adalah tujuan utama Container. Container juga dipilih dalam Event secara keseluruhan. Hal ini membuat Event cara memperlakukan Container seolah-olah mereka adalah satu Object. Misalnya: jika sebuah Condition memilih (Pick) Instance ‘Tank Base’, ia juga secara otomatis memilih ‘Turret’ yang terkait dengannya.


Contoh

Dalam Event berikut, asumsikan ‘TankBase’ dan ‘TankTurret’ ada dalam sebuah Container.


Dalam Event di atas, Instance: ‘TankTurret’ juga dibuat (Created) karena berada dalam Container dengan ‘TankBase’. Mungkin juga berguna untuk menambahkan Action untuk mengatur posisi ‘TankTurret’ agar tampil berada di atas ‘TankBase’.


Dalam Event ini, Instance: ‘TankTurret’ yang terkait juga terhapus (Destroyed) karena berada dalam Container dengan ‘TankBase’.


Dalam Event ini, saat Instance: ‘Bullet’ menyentuh ‘TankBase’, hanya ‘TankTurret’ terkait yang berkedip. Jika Object itu tidak ada dalam Container, semua ‘TankTurret’ dalam game akan berkedip, sesuai peraturan 4.5.1. Cara kerja Event (karena tidak ada ‘TankTurret’ yang direferensikan dalam Condition ini, maka Action tersebut berlaku untuk semuanya).

Namun, karena Object itu berada dalam Container, saat ‘TankBase’ yang terkena ‘Bullet’ diambil (Picked), ‘TankTurret’ terkait juga diambil (Picked). Hal ini membuat Event berjalan sebagaimana mestinya, dan Event tersebut memperlakukan kedua Object tersebut seolah-olah merupakan satu. Ini adalah inti dari Container, dan untuk beberapa kegunaan seperti game strategi, akan ada sejumlah besar Event yang memanfaatkan jenis pengambilan (Picking) ini untuk memastikan Object bekerja sebagai Unit, dan tidak secara tidak sengaja mempengaruhi Instance lain.


Meletakkan Object: Container ke dalam Layout

Dalam Layout View, memungkinkan untuk membuat Instance dalam Container dengan sendirinya. Hal ini tampaknya melanggar peraturan 1 dan 2 tentang “Apa yang dilakukan Container”, karena Object dalam Container harus selalu dibuat dan dihapus (Create & Destroy) bersamaan. Namun, hal ini tidak berlaku dalam Layout editor. Sebagai gantinya, Object yang hilang dibuat secara otomatis saat game dimulai. Ini adalah ide bagus untuk memastikan Anda membuat cukup banyak Object sehingga Anda dapat mengedit posisi Object, Instance Variable, dan Properties lainnya dari Layout View.


Object: Data storage di Container

Mungkin saja menambahkan Object: Data Storage seperti: Array dan Dictionary ke Container dengan Object lain. Terlepas dari fakta bahwa semua Object ini tidak terlihat, Instance dari Object yang terpisah masih dibuat untuk setiap Container. Ini memungkinkan Anda memiliki Array atau Dictionary khusus untuk setiap Instance dari sebuah Object. Ini bisa sangat berguna sebagai pengganti Instance Variable tingkat lanjut, seperti: jika sejumlah besar Variable diperlukan, atau jika Variable perlu ditambahkan dan dihapus secara dinamis.




Komentar