Browse Source

Add C# to Viewport and canvas transforms page

skyace65 7 years ago
parent
commit
27cfce67f1
1 changed files with 16 additions and 2 deletions
  1. 16 2
      tutorials/2d/2d_transforms.rst

+ 16 - 2
tutorials/2d/2d_transforms.rst

@@ -73,10 +73,15 @@ Obtaining each transform can be achieved with the following functions:
 Finally then, to convert a CanvasItem local coordinates to screen
 Finally then, to convert a CanvasItem local coordinates to screen
 coordinates, just multiply in the following order:
 coordinates, just multiply in the following order:
 
 
-::
+.. tabs::
+ .. code-tab:: gdscript GDScript
 
 
     var screen_coord = get_viewport_transform() * ( get_global_transform() * local_pos )
     var screen_coord = get_viewport_transform() * ( get_global_transform() * local_pos )
 
 
+ .. code-tab:: csharp
+
+    var screenCord = (GetViewportTransform() * GetGlobalTransform()).Xform(localPos);
+
 Keep in mind, however, that it is generally not desired to work with
 Keep in mind, however, that it is generally not desired to work with
 screen coordinates. The recommended approach is to simply work in Canvas
 screen coordinates. The recommended approach is to simply work in Canvas
 coordinates (``CanvasItem.get_global_transform()``), to allow automatic
 coordinates (``CanvasItem.get_global_transform()``), to allow automatic
@@ -89,10 +94,19 @@ It is often desired to feed custom input events to the scene tree. With
 the above knowledge, to correctly do this, it must be done the following
 the above knowledge, to correctly do this, it must be done the following
 way:
 way:
 
 
-::
+.. tabs::
+ .. code-tab:: gdscript GDScript
 
 
     var local_pos = Vector2(10, 20) # local to Control/Node2D
     var local_pos = Vector2(10, 20) # local to Control/Node2D
     var ie = InputEventMouseButton.new()
     var ie = InputEventMouseButton.new()
     ie.button_index = BUTTON_LEFT
     ie.button_index = BUTTON_LEFT
     ie.position = get_viewport_transform() * (get_global_transform() * local_pos)
     ie.position = get_viewport_transform() * (get_global_transform() * local_pos)
     get_tree().input_event(ie)
     get_tree().input_event(ie)
+
+ .. code-tab:: csharp
+
+    var localPos = new Vector2(10,20); // local to Control/Node2D
+    var ie = new InputEventMouseButton();
+    ie.ButtonIndex = (int)ButtonList.Left;
+    ie.Position = (GetViewportTransform() * GetGlobalTransform()).Xform(localPos);
+    GetTree().InputEvent(ie);