ctrlMapScreenToWorld: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - " *\| *([Cc]omments|COMMENTS|Game|[Gg]ame [Nn]ame|Game [Vv]ersion|Game Version \(number surrounded by NO SPACES\)|Multiplayer Arguments( \("local" or "global"\))?|Effects|Multiplayer Effects( \("local" or "global"\))?|Multiplayer Exe...)
m (Text replacement - "<sqf>([^↵][^\/]*↵[^\/]*)<\/sqf>" to "<sqf> $1 </sqf>")
 
(31 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Command
{{RV|type=command


| arma1
|game1= arma1
|version1= 1.05


|1.05
|game2= arma2
|version2= 1.00
 
|game3= arma2oa
|version3= 1.50
 
|game4= tkoh
|version4= 1.00
 
|game5= arma3
|version5= 0.50


|gr1= GUI Control - Map
|gr1= GUI Control - Map


| Converts map screen coordinates into world coordinates. Unlike [[posScreenToWorld]], this command returns world position is format [x, y], otherwise it is identical to [[posScreenToWorld]].
|descr= Converts map screen coordinates into world coordinates. Unlike [[posScreenToWorld]], this command returns world position is format [x, y], otherwise it is identical to [[posScreenToWorld]].


| control '''ctrlMapScreenToWorld''' [x, y]
|s1= control [[ctrlMapScreenToWorld]] [x, y]


|p1= control: [[Control]] - map control
|p1= control: [[Control]] - map control


|p2= [x, y]: [[Array]]
|p2= x: [[Number]] - screen X
|p3= x: [[Number]] - screen X
|p4= y: [[Number]] - screen Y


| [[Array]] - world coordinates in format [[Position2D]]
|p3= y: [[Number]] - screen Y
 
|x1= <code>_worldCoord = _control [[ctrlMapScreenToWorld]] _ScreenCoord;</code>
|x2= <code>_worldCoord = _control [[ctrlMapScreenToWorld]] [_x, _y];</code>
|x3= <code>_worldCoord = [[findDisplay]] 12 [[displayCtrl]] 51 [[ctrlMapScreenToWorld]] [0.5, 0.5];</code>


| [[ctrlMapWorldToScreen]], [[posScreenToWorld]], [[posWorldToScreen]], [[findDisplay]], [[displayCtrl]]
|r1= [[Array]] - world coordinates in format [[Position#Introduction|Position2D]]


|x1= <sqf>_worldCoord = _control ctrlMapScreenToWorld _ScreenCoord;</sqf>
|x2= <sqf>_worldCoord = _control ctrlMapScreenToWorld [_x, _y];</sqf>
|x3= <sqf>_worldCoord = findDisplay 12 displayCtrl 51 ctrlMapScreenToWorld [0.5, 0.5];</sqf>
|seealso= [[ctrlMapWorldToScreen]] [[posScreenToWorld]] [[posWorldToScreen]] [[findDisplay]] [[displayCtrl]]
}}
}}


<h3 style="display:none">Notes</h3>
<dl class="command_description">
<dl class="command_description">


<!-- Note Section BEGIN -->
<dt><dt>
<dd class="notedate">Posted on 2007-04-06 - 23:41</dd>
<dt class="note">[[User:LowFly|LowFly]]</dt>


<dd class="notedate">Posted on April 6, 2007 - 23:41
<dd class="note">You can get the screen coordinates by the [[User_Interface_Event_Handlers|UI Event Handlers]] onMouseButtonDown, onMouseButtonUp, onMouseButtonClick, onMouseButtonDblClick.
<dt class="note">[[User:LowFly|LowFly]]<dd class="note">''Notes:''


You can get the screen coordinates by the [[User_Interface_Event_Handlers|UI Event Handlers]] onMouseButtonDown, onMouseButtonUp, onMouseButtonClick, onMouseButtonDblClick. 
The return Array is in 2D, you can use it with all set-position commands.
 
<sqf>
The return Array is in 2-D, you can use it with all set-position commands.
_x = returnArray select 0;
<pre>_x = returnArray select 0;
_y = returnArray select 1;
_y = returnArray select 1;</pre>
</sqf>
</dd>


<dt><dt>
<dd class="notedate">
<dd class="notedate">
<dt class="note">[[User:Ceeeb|Ceeeb]]<dd class="note">
<dt class="note">[[User:Ceeeb|Ceeeb]]</dt>
<dd class="note">
The command parameters are screen position coordinates, which may not equate to the map control's coordinates. A map control's screen coordinates and size can be found use the [[ctrlPosition]] command. This is an issue when using the Arma 3 in-game map, which is not fullscreen (all previous titles used full screen map controls, so map control coords did equate to screen coords).
The command parameters are screen position coordinates, which may not equate to the map control's coordinates. A map control's screen coordinates and size can be found use the [[ctrlPosition]] command. This is an issue when using the Arma 3 in-game map, which is not fullscreen (all previous titles used full screen map controls, so map control coords did equate to screen coords).
</dd>


<dd class="notedate">Posted on August 28, 2017 - 0:05
<dt><dt>
<dt class="note">[[User:Icaruk|Icaruk]]<dd class="note">
<dd class="notedate">Posted on 2017-08-28 - 0:05</dd>
<dt class="note">[[User:Icaruk|Icaruk]]</dt>
<dd class="note">
This example creates a RscMapControl and hints you the [x,y] position where you clicked.
This example creates a RscMapControl and hints you the [x,y] position where you clicked.


<code>0 spawn {<br>
<sqf>
0 spawn {
disableSerialization;
disableSerialization;
_map = findDisplay 46 createDisplay "RscCredits" ctrlCreate ["RscMapControl", -1];
_map = findDisplay 46 createDisplay "RscCredits" ctrlCreate ["RscMapControl", -1];
_map ctrlSetPosition [0,0,1,1];
_map ctrlSetPosition [0,0,1,1];
_map ctrlCommit 0;<br>
_map ctrlCommit 0;
 
_map ctrlAddEventHandler ["mouseButtonDown", {
_map ctrlAddEventHandler ["mouseButtonDown", {
_ctrl = _this select 0;
_ctrl = _this select 0;
_x = _this select 2;
_x = _this select 2;
_y = _this select 3;<br>
_y = _this select 3;
_pos = _ctrl '''ctrlMapScreenToWorld''' [_x, _y];
 
_pos = _ctrl ctrlMapScreenToWorld [_x, _y];
hint format ["pos: %1", _pos];
hint format ["pos: %1", _pos];
}];<br>
}];
};</code>
};
</sqf>
</dd>


</dd>
</dl>
</dl>
<h3 style="display:none">Bottom Section</h3>
[[Category:Scripting Commands|{{uc:{{PAGENAME}}}}]]
{{GameCategory|arma1|Scripting Commands}}
{{GameCategory|arma2|Scripting Commands}}
{{GameCategory|arma3|Scripting Commands}}
{{GameCategory|tkoh|Scripting Commands}}
<!-- CONTINUE Notes -->
<!-- DISCONTINUE Notes -->

Latest revision as of 11:35, 3 September 2024

Hover & click on the images for description

Description

Description:
Converts map screen coordinates into world coordinates. Unlike posScreenToWorld, this command returns world position is format [x, y], otherwise it is identical to posScreenToWorld.
Groups:
GUI Control - Map

Syntax

Syntax:
control ctrlMapScreenToWorld [x, y]
Parameters:
control: Control - map control
x: Number - screen X
y: Number - screen Y
Return Value:
Array - world coordinates in format Position2D

Examples

Example 1:
_worldCoord = _control ctrlMapScreenToWorld _ScreenCoord;
Example 2:
_worldCoord = _control ctrlMapScreenToWorld [_x, _y];
Example 3:
_worldCoord = findDisplay 12 displayCtrl 51 ctrlMapScreenToWorld [0.5, 0.5];

Additional Information

See also:
ctrlMapWorldToScreen posScreenToWorld posWorldToScreen findDisplay displayCtrl

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note
Posted on 2007-04-06 - 23:41
LowFly
You can get the screen coordinates by the UI Event Handlers onMouseButtonDown, onMouseButtonUp, onMouseButtonClick, onMouseButtonDblClick. The return Array is in 2D, you can use it with all set-position commands.
_x = returnArray select 0; _y = returnArray select 1;
Ceeeb
The command parameters are screen position coordinates, which may not equate to the map control's coordinates. A map control's screen coordinates and size can be found use the ctrlPosition command. This is an issue when using the Arma 3 in-game map, which is not fullscreen (all previous titles used full screen map controls, so map control coords did equate to screen coords).
Posted on 2017-08-28 - 0:05
Icaruk
This example creates a RscMapControl and hints you the [x,y] position where you clicked.
0 spawn { disableSerialization; _map = findDisplay 46 createDisplay "RscCredits" ctrlCreate ["RscMapControl", -1]; _map ctrlSetPosition [0,0,1,1]; _map ctrlCommit 0; _map ctrlAddEventHandler ["mouseButtonDown", { _ctrl = _this select 0; _x = _this select 2; _y = _this select 3; _pos = _ctrl ctrlMapScreenToWorld [_x, _y]; hint format ["pos: %1", _pos]; }]; };