Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
physics [2020/05/24 13:20] – [Colliders] adminphysics [2020/05/24 13:29] – [Remote-Control] admin
Line 206: 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 "UserData", which contains the linked visual component. The type of that link you can request with the property "UserDataType". Each body has an untyped pointer property "UserData", which contains the linked visual component. The type of that link you can request with the property "UserDataType".
 +
 +<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('Cube1') and TComponent(ABodyB.UserData).Name.Equals('Sphere2') then
 +    begin
 +      FMX.Types.Log.D('expected collision between %s <=> %s', 
 +        [TComponent(ABodyA.UserData).Name, TComponent(ABodyB.UserData).Name]);
 +    end
 +    else
 +    begin
 +      FMX.Types.Log.D('<ERROR> unexpected collision between %s <=> %s', 
 +        [ABodyA.UserDataType^.Name, ABodyB.UserDataType^.Name]);
 +    end;
 + end;
 +</file>
 ===== Remote-Control ===== ===== Remote-Control =====
  
Line 216: Line 237:
   * RemoteBodyForce   * RemoteBodyForce
  
-By this methods you're able to set a position or rotation explicitly or to apply a force / impulse on a specific element.+<file pascal> 
 +// move cube upwards by impulse 
 +GorillaPhysicsSystem1.RemoteBodyImpulse(GorillaCube1, Point3D(0, -1, 0)); 
 +</file> 
 + 
 +By the methods above you're able to set a position and/or rotation explicitlyor to apply a force / impulse on a specific element.
  
 **__CAUTION:__ By this methods you can influence physical mechanics so heavily, that overstep bounds / limits, which may lead to unexpected behaviour.** **__CAUTION:__ By this methods you can influence physical mechanics so heavily, that overstep bounds / limits, which may lead to unexpected behaviour.**
  
 Next step: [[fmodaudio|FMOD Audio]] Next step: [[fmodaudio|FMOD Audio]]