Dasar-dasar Physics di Construct 2

Bagus Aji Santoso 10 November 2017

Dasar-dasar Physics di Construct 2

Construct 2 memiliki fitur Physics yang ditenagai oleh Box2DWeb. Fitur ini memungkinkan kita untuk membuat objek dalam game bergerak dengan sesuai dengan hukum fisika di dunia nyata - berikut ini contoh untuk menunjukkan cara kerjanya. Physics bisa membuat game kita menjadi lebih seru untuk dimainkan! Berikut dasar-dasar bagaimana kita bisa menggunakan Physics di dalam game dengan Construct 2.

Jika pernah belajar Fisika di sekolah, pembaca mungkin bisa mengaplikasikan beberapa teorinya dengan Physics Construct 2. Saya akan menjelaskan dasar-dasarnya secara singkat kalau-kalau pembaca belum pernah mempelajari konsepnya. Tertarik dengan teori-teorinya? Coba baca artikel Hukum gerak Newton. berikut ini link lain yang mungkin juga dapat berguna.

Construct 2 sudah memiliki banyak contoh Physics! Klik Browse all examples di halaman awal dan semua file demo yang ada di Construct 2 di awali dengan nama "Physics - ", misalnya "Physics - basics.capx".

Bagaimana Menambahkan Physics

Pilih salah satu objek yang inign ditambahkan efek Physics. Di Properties Bar, klik Add / Edit di bawah Behaviors. Klik ikon tambah berwarna hijau dan dari kotak dialog yang muncul pilih Physics. Selesai!

Kita akan menyebut objek yang diberikan efek Physics dengan "objek physics".

Gravity

Secara otomatis efek gravitasi akan ada di tiap objek physics yang akan menarik semua objek jatuh ke bawah. Nilai bawaan dari gravitasi ini adalah 10 (ingat, sumbu Y di Construct 2 akan semakin bertambah saat bergerak ke bawah). Jika ingin mematikan gravitasi, gunakan action Set gravity di objek physics manapun. Catat: gravitasi akan diaplikasikan ke seluruh objek. Sehingag jika gravitasi diberikan 0 untuk satu objek, maka gravitas juga akan dimatikan untuk objek-objek yang lain.

Setting the world gravity to 0.

Membuat Scenery

Kita tidak ingin lantai game kita jatuh juga karena efek gravitasi! Bahkan di game "zero gravity (tanpa gravitasi)", ada satu bagian dari tampilan game yang akan bergerak jika ada dorongan dan kemungkinan akan berputar. (Hukum ketiga Newton: "gaya aksi dan reaksi dari dua benda memiliki besar yang sama").

Biasanya kita ingin mensimulasikan suatu scenery (pemandangan/objek-objek lain) tidak jatuh karena gravitasi dan tidak terdorong karena ada sesuatu yang menabraknya. Atur properti objek physics menjadi Immovable menjadi Yes untuk mensimulasikan hal ini.

Setting a physics object to immovable.

Objek ini selanjutnya akan memiliki massa tak terbatas sehingga apapun yang terjadi dia akan tetap ada di posisi yang sama!

Catatan: objek Physics hanya akan berinteraksi dengan objek physics lain. Menambahkan behavior solid ke lantai tidak memberikan efek objek physics. Objek physics akan menembus objek 'Solid' sampai kita memberikan efek Physics dan mengaturnya menjadi immovable.

Properti Physics Lain

Mari kita bahas sebentar properti lain dari efek physics:

Collision mask

Properti ini mengatur bentuk collision sebuah objek. Secara otomatis, objek physics menggunakan collision polygon. Jika membuka editor gambar dan klik tool collision polygon, kita dapat mengubah bagaimana objek ini dapat berbenturan. Jangan menambahkan terlalu banyak titik tabrak agar tidak membuat game menjadi lambat.

Jika collision mask diatur menjadi bounding box atau circle, collision polygon tadi akan diabaikan dan game akan menggunakan persegi panjang (bounding box) atau lingkaran (circle) disekeliling objek. Collision circle akan membuat objek kita menggelinding.

Prevent rotation

Jika diaktifkan, objek tidak akan pernah berputar meskipun nyangkut. Opsi ini berguna jika kita ingin pengguna dapat mengatur sudut bermainnya. Misal, di game platformer kita tentu tidak ingin pemain jatuh kedepan setiap kali mencoba untuk berlari (bayangkan game motor-motoran yang sering ada di Android).

Density

Density digunakan untuk menentukan massa suatu objek. Massa mendefiniskan seberapa sulit objek itu untuk bergerak. (Catat bahwa istilah "berat" bukan istilah yang tepat karena berat bergantung pada gravitas dan objek masih memiliki massa di gravitasi nol. Objek akan memiliki massa yang besar masih tetap sulit bergerak di gravitas nol). Massa objek kita ditentukan dengan mengalikan desnity dengan luas bentuk collision-nya. Jadi sebuah objek yang sangat besar akan memiliki massa yang sangat besar juga dibandingkan objek yang kecil, meskipun memiliki density yang sama.

Friction

Friction (gesekan) mengatur berapa banyak sebuah objek melambat karena objek lain. Tanpa friction seperti melakukan ice skating dan friction tinggi seperti menarik bata di atas tanah. Lebih sulit menarik bata di atas tanah biasa dibanding di atas es.

Elasticity

Elasticity mengatur bagaimana pantulan yang terjadi pada suatu objek. Sebuah objek dengan tingkat elasticity yang tinggi akan memantul lebih tinggi saat dijatuhkan ke lantai dan sebuah objek dengan elasticity nol tidak akan memantul sama sekali.

Linear damping

Objek akan bergerak dengan kecepatan sama di arah yang sama selamanya kecuali terjadi sesuatu yang memberikan efek berbeda. Bayangkan melempar bola tenis di luar angkasa - dia akan terus saja terbang sampai menabrak objek luar angkasa lain. (Hukum pertama newton: )

Objects move at the same speed in the same direction forever, unless something else affects them. Think of throwing a tennis ball in space - off it goes forever. (Newton's first law of motion: "setiap benda akan memiliki kecepatan yang konstan kecuali ada gaya yang resultannya tidak nol bekerja pada benda tersebut".) Di bumi, gaya seperti gravitasi, gesekan dan hambatan udara membuat hal ini tidak terlihat.

Dalam game kita yang menggunakan physics, kita mungkin ingin mendorong sebuah objek dan bergerak selamanya sesuai dengan hukum ketiga Newton. Kita ingin mensimulasikan gesekan terhadap lantai atau hambatan udara. Meningkatkan linear damping akan membuat objek melambat dengan sendirinya dan akhirnya berhenti. Linear damping nol akan berlaku seperti di luar angkasa - bergerak selamanya tanpa henti.

Angular damping

Angular damping memiliki konsep yang mirip dengan linear damping, tapi hubungannya dengan perputaran suatu objek. Sekali lagi, di luar angkasa sebuah objek yang berputar akan terus melakukannya dengan kecepatan yang sama selamanya. Menambah tingkat angular damping akan membuat objek berputar melambat sampai berhenti.

Tips Physics Secama Umum

Performa

Simulasi Physics sangat memakan CPU. Ia memerlukan banyak sumber daya karena perlu memproses gerak yang sesuai. Untuk memastikan game kita berjalan dengan cepat, sangat direkomendasikan untuk tidak menggunakan terlalu banyak objek sekaligus. Penggunaan lebih dari 100 objek physics yang bergerak sekaligus akan melambatkan game yang kita buat. Lalu, handphone dan tablet memiliki processing power yang terbatas dibanding komputer biasa. Jika menargetkan mobile, kita perlu membatasi untuk tidak melewati angka 20-30 objek physics.

Perlu diingat pula, objek yang sudah benar-benar berhenti (tidak bergerak atau berputar sama sekali) akan masuk dalam status sleep. Itu artinya mereka tidak memerlukan processing power sama sekali. Namun, jika objek tersebut berbenturan dengan objek lain dan bergerak lagi, maka ia akan memakan processing power sekali lagi. Ingat ya, meskipun bergerak hanya sedikit sekali, mereka tidak akan masuk status sleep (artinya masih memakan processing power).

Stabilitas

Simulasi Physics tidak selalu dapat diandalkan. Jika kita mensimulasikan hal-hal yang tidak masuk akal, misalnya objek raksasa yang menabrak busa dengan kecepatan suara tidak akan menghasilkan sesuatu yang realistis juga. Faktanya, gaya ekstrim yang ingin coba dilakukan dengan Physics bisa membuat simulais menjadi tidak stabil.

Objek yang sangat kecil (di bawah 5 px) atau terlalu besar (lebih dari 500 px) dapat membuat simulasi berjalan dengan kurang realistis. Cobalah untuk menjaga tinggi dan lebar suatu objek berada dalam radius 5-500 px dan jauhi juga proporsi ekstrim (misalnya objek berukuran 5x500).

Dengan kata lain, Physics akan bekerja dengan performa terbaik pada objek yang memiliki ukuran dan massa yang sama dan berinteraksi dengan kecepatan yang tidak terlalu cepat.

Gerakan Manual dan Perilaku Lainnya

Jika memindah objek dengan event (mengatur X atau Y) atau perilaku lain (menambahkan 8 arah ke sebuah objek physics), simulasi simulasi physics akan mencoba untuk berjalan sebaik mungkin dengan apa yang sudah dilakukan. Bagaimanapun, akan lebih realistis jika kita memindahnya dengan mengaplikasikan gaya atau dorongan ke objek physics tersebut.

Contoh, jika kita menggunakan Set Position untuk memindah sebuah objek ke sisi lain secara instan bisa mengakibatkan pergerakan yang tidak realistis. Oleh karena itu untuk saat menemukan perilaku seperti ini Physics akan membuat agar objek tersebut berpindah secara sangat cepat dalam satu kedipan (sekitar 1/60 dari satu detik). Selalu ingat untuk menjaga simulasi stabil jauhi kondisi ekstrim.

Meskipun kita bisa menambah Platform behavior ke objek Physics, kedua properti ini tidak bekerja sama dengan baik. Sekali lagi, lebih baik jika kita mengaplikasikan sebuah gaya. Lihat contoh Physics - rolling platformer untuk melihat demonstrasinya.

Kesimpulan

Physics dapat membuat game kita menjadi lebih menyenangkan, tapi janga lupa untuk menghindari pembuatan objek yang terlalu banyak, kondisi-kondisi ekstrim, coba selalu untuk menggerakkan objek melalui gaya atau dorongan (forces and impluses) - dan tentunya belajar teori sedikit akan sangat membantu!

Physics in Construct 2: The basics originally published by Ashley

Gambar sampul dari tech-recipes