Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
physics [2020/05/24 13:17] – [Colliders] admin | physics [2020/05/24 13:28] – [Remote-Control] admin | ||
---|---|---|---|
Line 20: | Line 20: | ||
</ | </ | ||
+ | |||
+ | ==== Start ==== | ||
+ | |||
+ | To enable physics computation you have to enable the controller, by simply activating it. | ||
+ | |||
+ | <file pascal> | ||
+ | GorillaPhysicsSystem1.Active := true; | ||
+ | </ | ||
==== Iterations ==== | ==== Iterations ==== | ||
Line 84: | Line 92: | ||
Even though you link visual components like TGorillaCube or TGorillaSphere, | Even though you link visual components like TGorillaCube or TGorillaSphere, | ||
- | You push starting transformation and body data by adding a collider: | + | On collider registration you push starting transformation |
- | * AddBoxCollider | + | * AddBoxCollider() |
- | * AddSphereCollider | + | * AddSphereCollider() |
- | * AddCapsuleCollider | + | * AddCapsuleCollider() |
- | * AddParticleCollider | + | * AddParticleCollider() |
- | * AddTerrainCollider | + | * AddTerrainCollider() |
- | * AddMeshCollider | + | * AddMeshCollider() |
From there on the physics controller will compute transformation based on its own universe. | From there on the physics controller will compute transformation based on its own universe. | ||
Line 99: | Line 107: | ||
[[# | [[# | ||
- | Derived components of TCustomMesh and TGorillaMesh are supported for colliders. | + | Derived components of **TCustomMesh** and **TGorillaMesh** are supported for colliders. |
===== Threading ===== | ===== Threading ===== | ||
Line 198: | Line 206: | ||
Those callbacks will give you the both colliding elements at this moment of TQ3Body type (Gorilla.Physics.Q3.Body). | Those callbacks will give you the both colliding elements at this moment of TQ3Body type (Gorilla.Physics.Q3.Body). | ||
Each body has an untyped pointer property " | Each body has an untyped pointer property " | ||
+ | |||
+ | <file pascal> | ||
+ | procedure TUIMainWin.doOnBeginContact(const ABodyA, ABodyB : TQ3Body); | ||
+ | begin | ||
+ | if not Assigned(ABodyA.UserDataType) then | ||
+ | Exit; | ||
+ | if not Assigned(ABodyB.UserDataType) then | ||
+ | Exit; | ||
+ | | ||
+ | if TComponent(ABodyA.UserData).Name.Equals(' | ||
+ | begin | ||
+ | FMX.Types.Log.D(' | ||
+ | [TComponent(ABodyA.UserData).Name, | ||
+ | end | ||
+ | else | ||
+ | begin | ||
+ | FMX.Types.Log.D('< | ||
+ | [ABodyA.UserDataType^.Name, | ||
+ | end; | ||
+ | end; | ||
+ | </ | ||
===== Remote-Control ===== | ===== Remote-Control ===== | ||
Line 211: | Line 240: | ||
**__CAUTION: | **__CAUTION: | ||
+ | |||
+ | <file pascal> | ||
+ | GorillaPhysicsSystem1.RemoteBodyImpulse(GorillaCube1, | ||
+ | </ | ||
Next step: [[fmodaudio|FMOD Audio]] | Next step: [[fmodaudio|FMOD Audio]] |