Langsung ke konten utama

Construct 2 Indonesia Manual: Bab Behavior Reference - 16. Physics

Behavior: Physics mensimulasikan Physic dari Object secara realistis. Ini didukung oleh Box2DWeb (http://code.google.com/p/box2dweb/). Sebagai contoh bagaimana Behavior bekerja, Cari Physics di dialog Start.

Behavior: Physics relatif kompleks. Tutorial berikut direkomendasikan untuk mendapatkan pemahaman dasar tentang bagaimana menggunakan Behavior: Physics dan beberapa poin penting yang harus diketahui sebelum mulai menggunakannya:

  • http://www.scirra.com/tutorials/64/physics-in-construct-2-the-basics
  • http://www.scirra.com/tutorials/65/physics-in-construct-2-forces-impulses-torque-and-joints

Bagian manual ini tidak akan mengulangi informasi dalam tutorial tersebut. Sebaliknya, ini hanya akan menggambarkan setiap fitur Behavior: Physics. Tutorial tersebut menjelaskan bagaimana ‘Physics Engine’ bekerja, apa jenis ‘Joint’ yang berbeda, perbedaan antara dorongan (Impulse) dan kekuatan (Force), dan seterusnya jika Anda belum mengenalnya.


Menggunakan Physics dalam Construct 2

Behavior: Physics mensimulasikan Physics secara terpisah di Layout oleh Construct 2. Construct 2 akan mencoba untuk menjaga Physics dan Construct 2 “Worlds” disinkronkan jika ada perubahan tapi tidak yang lain, namun ini tidak dapat diprediksi. Misalnya: menentukan posisi atau sudut (Angle) dari Object akan menyebabkan Construct 2 melakukan teleportasi Object yang berhubungan dalam Physics Simulation ke posisi baru Object, yang tidak selalu benar dalam memperhitungkan benturan. Hal yang sama berlaku untuk menggunakan Behavior lainnya pada Construct 2 di waktu bersamaan sebagai Physics.

Oleh karena itu sangat disarankan untuk mengendalikan Object: Physics secara keseluruhan melalui Behavior: Physics (dalam menetapkan kekuatan/Force, dorongan/Impulse, putaran/Torque, dll.), Daripada mencoba memanipulasi Object dengan Action: Set position, Set Angle, dll.


Memilih Physics Engine

Physics Engine yang memberi kekuatan pada Behavior dapat dipilih di Project Properties. Dianjurkan untuk menggunakan Engine: Box2D asm.js untuk performa maksimal, kecuali jika Anda perlu menggunakan Action: Disable collision (yang tidak didukung dalam mode ini).


Physics Properties

  • Immovable (Tidak dapat digerakkan)
    Jika YES, simulasikan Object yang memiliki massa tak terbatas (Infinite Mass). Kepadatannya (Density) diabaikan dan tidak akan pernah bergerak.

  • Collision mask (Area tabrakan)
    • Use Collision mask
    : Menggunakan Collision Polygon dari Object dari Image/Animation Editor untuk tabrakan Physics. Jika tidak memiliki poligon tabrakan, maka akan menggunakan kotak pembatas (Bounding Box) dari Object.

    • Bounding box
    : Mengabaikan poligon tabrakan Object jika ada, dan untuk keperluan tabrakan, Physics menganggap Object tersebut berbentuk persegi.

    • Circle
    : Mengabaikan poligon tabrakan Object jika ada, dan untuk keperluan tabrakan, Physics menganggap Object berbentuk lingkaran. Hal ini memungkinkan Object lancar bergulir (seperti misalnya: tong). Ini sangat berguna karena poligon tabrakan Object dibuat dari garis lurus, sedangkan bentuk lingkaran halus tidak dapat dibuat seperti itu.


  • Prevent rotation (Mencegah berputar)
    Kunci sudut (Angle) Object sehingga tabrakan Physics tidak menyebabkannya berputar.

  • Density (Kepadatan)
    Kepadatan Physics. Hanya digunakan jika Property: Immovable adalah NO. Massa Object dihitung sebagai densitas dikalikan dengan luas Collision mask. Nilai kepadatan yang tepat yang digunakan tidak penting dan tidak memiliki unit/satuan khusus – hanya kepadatan relatif yang signifikan (yaitu suatu Object dengan kepadatan 6 akan dua kali padatnya dengan benda dengan kepadatan 3).

  • Friction (Gesekan)
    Koefisien gesekan Physics dari 0 (tidak ada gesekan) sampai 1 (gesekan maksimal). Ini menyesuaikan seberapa mudah Object bergerak satu sama lain saat menyentuh.

  • Elasticity
    Elastisitas juga dikenal sebagai pantulan (Restitution) atau membal (Bounce) dari Object: Physics, dari 0 (inelastis, seperti batu) sampai 1 (elastisitas maksimum, seperti bola karet). Hal ini mempengaruhi seberapa tinggi Object memantul saat menabrak lantai.

  • Linear damping (Redaman/perlambatan Linier)
    Tingkat Object melambat dari waktu ke waktu selama bergerak, dari 0 (tidak ada perlambatan sama sekali) sampai 1 (perlambatan maksimum).

  • Angular damping (Redaman/perlambatan putaran)
    Tingkat Object melambat dari waktu ke waktu saat berputar, dari 0 (tidak ada perlambatan sama sekali) sampai 1 (perlambatan maksimum).

  • Bullet 
    Aktifkan deteksi tabrakan yang disempurnakan untuk benda yang bergerak cepat. Hal ini dapat mempengaruhi kinerja, jadi jangan aktifkan kecuali jika Object bergerak begitu cepat sehingga deteksi tabrakan standar dari Physic Engine tidak dapat diandalkan.

  • Initial state
    Apakah simulasi Physics awalnya diaktifkan atau dinonaktifkan. Jika Disabled, tidak ada Physics yang diproses untuk Object, dan Object dengan Physics lainnya dapat melewati Object tersebut seolah-olah itu adalah ruang kosong.


Physics Conditions

  • Compare angular velocity
    Bandingkan kecepatan sudut/rotasi badan Physics saat ini, dalam derajat per detik. Nilai positif menunjukkan rotasi searah jarum jam dan nilai negatif menunjukkan rotasi berlawanan arah jarum jam.

  • Compare mass
    Bandingkan massa badan Physics. Hal ini ditentukan dengan mengalikan kepadatan (Density) dengan luas poligon tabrakan (Polygon Collision) dari Object.

  • Compare velocity
    Bandingkan kecepatan saat ini (kecepatan) badan Physics, dalam pixel per detik. Kecepatan dapat dibandingkan pada poros (Axis) secara individu, seperti hanya sumbu X untuk membandingkan gerakan horisontal, atau kecepatan keseluruhan juga dapat digunakan.

  • Is enabled
    TRUE jika Behavior: Physics saat ini diaktifkan. Bila Disabled, badan Physics benar-benar dihapus dari simulasi Physics, maka Object: Physics lainnya akan melewati Object tanpa adanya benturan.

  • Is sleeping
    TRUE jika Object sudah dalam kondisi “Istirahat” (Rest) dan tidak bergerak atau sempat terganggu untuk sementara, sehingga Physics Engine bisa berhenti memprosesnya. Catatan: Object masih bisa bergerak tak kentara yang bisa mencegah mereka “Tertidur”, bahkan ketika mereka tampaknya berhenti.


Physics Actions

Physics Actions: Forces

  • Apply force
  • Apply force at Angle
  • Apply force towards position
    Terapkan kekuatan/gaya pada Object, baik pada sudut (Angle), menuju ke suatu posisi, atau dengan Force khusus (Custom) pada sumbu X dan Y. Menerapkan gaya (Force) menyebabkan Object mempercepat ke arah gaya (Force) tersebut. Force bisa diterapkan dari Image point atau ‘Object Origin’.

  • Apply impulse
  • Apply impulse at Angle
  • Apply impulse towards position
    Terapkan dorongan pada Object, baik pada sudut (Angle), menuju ke suatu posisi, atau dengan Impulse khusus (Custom) pada sumbu X dan Y. Menerapkan dorongan akan mensimulasikan Object yang terkena dorongan, misalnya: ditabrak kelelawar. Impulse bisa diterapkan dari Image point atau ‘Object Origin’.

  • Set velocity
    Atur kecepatan Object secara langsung, tersedia kecepatan untuk sumbu X dan Y, dalam pixel per detik.


Physics Actions: Global settings

Action ini mempengaruhi Behavior: Physics pada umumnya, bukan hanya terhadap yang ditetapkan.

  • Enable/disable collisions
    Secara Default, semua Object: Physics bertabrakan satu sama lain. Anda dapat menonaktifkan (Disable) tabrakan antara Object dan Object: Physics lainnya sehingga saling melewati satu sama lain tanpa benturan. Ini mempengaruhi semua Instance dari kedua Object Type. Catatan: Mengubah menjadi Enabled kembali lagi saat Object tumpang tindih (Overlapping) dapat menyebabkan ketidakstabilan dalam simulasi.

  • Set stepping iterations
    Tetapkan jumlah iterasi/pengulangan kecepatan dan iterasi posisi yang digunakan pada Physics Engine. Defaultnya adalah 8 dan 3 masing-masing. Nilai yang lebih rendah berjalan lebih cepat namun kurang akurat, dan nilai yang lebih tinggi dapat menurunkan kinerja namun memberikan simulasi yang lebih realistis.

  • Set stepping mode
    Pilih apakah pergerakan waktu pada Physics menggunakan dt (delta time, untuk Framerate Independent) atau nilai tetap (Fixed Value). secara Default, ia menggunakan pergerakan waktu tetap (Fixed) untuk menghilangkan keacakan atau ketidakstabilan yang berasal dari dt, memastikan simulasi dapat direproduksi dengan tepat setiap saat. Set ke Framerate independent untuk menyesuaikan waktu sesuai dengan Framerate, yang bisa menyebabkan simulasi yang sama memiliki hasil yang berbeda jika dijalankan dua kali. Perhatikan: bahkan ketika dalam mode ini, Behavior menjepit waktu maksimum sampai 1/30 (sekitar 33ms, setara dengan 30 FPS) untuk mencegah ketidakstabilan yang dapat terjadi akibat pergerakan waktu (Time Steps) yang besar. Untuk informasi lebih lanjut lihat Delta-time and Framerate independence (http://www.scirra.com/tutorials/67/delta-time-and-Framerate-independence).

  • Set world gravity
    Untuk mengatur gaya gravitasi yang mempengaruhi semua Object: Physics. Secara Default ini adalah Force: 10 ke bawah.



Physics Actions: Joints

  • Create distance joint
    Perbaiki dua Object: Physics yang terpisah pada jarak tertentu, seolah dihubungkan dengan sebuah tiang/kutub.

  • Create revolute joint
  • Create limited revolute joint
    Pasang engsel pada dua Object: Physics, sehingga bisa diputar dengan bebas seolah dihubungkan dengan Pin. Limited evolute joint hanya memungkinkan rotasi dengan sudut tertentu, seperti genta lonceng.

  • Remove all joints
    Lepaskan semua sambungan dari Object. Object yang dilekatkan pada Object ini menggunakan Joint juga ikut terpengaruh. Catatan: Beberapa sambungan secara otomatis menonaktifkan tabrakan di antara semua Object, jadi Anda mungkin ingin secara manual menonaktifkan tabrakan lagi setelah melepaskan sambungan, jika tidak, Object yang tumpang tindih akan “Teleport” terpisah (karena Physics Engine akan mencoba mencegahnya tumpang tindih).


Physics Actions: Torque

Ini mengatur Property tersebut. Untuk informasi lebih lanjut, lihat Physics Properties.

  • Apply torque
  • Apply torque towards Angle
  • Apply torque towards position
    Terapkan torsi (percepatan rotasi) ke Object, baik secara langsung, atau ke arah sudut (Angle) atau posisi.

  • Set angular velocity
    Atur kecepatan sudut (laju putaran) secara langsung, dalam derajat per detik.



Physics Expressions

  • AngularVelocity
    Untuk mengambil nilai kecepatan sudut saat ini (laju rotasi) Object: Physics, dalam derajat per detik.

  • CenterOfMassX
  • CenterOfMassY
    Untuk mengambil nilai posisi pusat dari massa Object: Physics, seperti yang dihitung oleh Physics Engine. Hal ini tergantung pada Property dari Mask Collision, dan belum tentu berada di tengah Object.

  • Mass
    Massa Object: Physics, seperti yang dihitung oleh Physics Engine. Ini adalah area Mask Collision dari Object dikalikan dengan kepadatannya (Density).

  • VelocityX
  • VelocityY
    Kecepatan Object: Physics saat ini, dalam pixel per detik searah koordinat X atau Y.

  • AngularDamping
  • Density
  • Elasticity
  • Friction
  • LinearDamping
    Untuk mengambil nilai dari Property tersebut. Untuk informasi lebih lanjut, lihat Physics Properties.



Komentar