drawIcon: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Text replacement - "Position2D" to "Position2D") |
Killzone Kid (talk | contribs) No edit summary |
||
(27 intermediate revisions by 5 users not shown) | |||
Line 18: | Line 18: | ||
|gr1= GUI Control - Map | |gr1= GUI Control - Map | ||
| | |eff= local | ||
| | |descr= Draws an icon on the map. | ||
As this command needs to be called every frame, it is preferable using the [[User Interface Event Handlers#onDraw|onDraw]] UI Event Handler. | |||
{{Feature|informative|Some useful icons can be found in <sqf inline>configFile >> "CfgVehicleIcons"</sqf>.}} | |||
|s1= map [[drawIcon]] [texture, color, position, width, height, angle, text, shadow, textSize, font, align] | |s1= map [[drawIcon]] [texture, color, position, width, height, angle, text, shadow, textSize, font, align<!--, drawSideArrows, offsetX, offsetY-->] | ||
|p1= map: [[Control]] | |p1= map: [[Control]] | ||
|p2= texture: [[String]] - | |p2= texture: [[String]] - icon texture | ||
|p3= color: [[Array]] - | |p3= color: [[Array]] - text and icon color in format [[Color|Color(RGBA)]] | ||
|p4= position: [[Position#Introduction|Position2D]] | |p4= position: [[Object]], [[Array]] format [[Position#Introduction|Position2D]] or [[Position#Introduction|Position3D]] | ||
|p5= width: [[Number]] - | |p5= width: [[Number]] - width of the icon (but not the text) | ||
|p6= height: [[Number]] - | |p6= height: [[Number]] - height of the icon (but not the text) | ||
|p7= angle: [[Number]] - | |p7= angle: [[Number]] - rotation angle of the icon not the text (add to it [[ctrlMapDir]] to show correctly on rotating minimap) | ||
|p8= text | |p8= text: [[String]] - (Optional, default "") | ||
|p9= shadow | |p9= shadow: [[Number]] or [[Boolean]] - (Optional, default [[false]]) can be one of: | ||
* 0 ([[false]]): no shadow | * 0 ([[false]]): no shadow | ||
* 1: shadow (for text) | * 1: shadow (for text) | ||
* 2 ([[true]]): outline (works for text and for icon only if icon angle is 0) | * 2 ([[true]]): outline (works for text and for icon only if icon angle is 0) | ||
|p10= textSize | |p10= textSize: [[Number]] - (Optional, default -1) size of the text in UI units | ||
|p10since= arma3 0.72 | |p10since= arma3 0.72 | ||
|p11= font: [[String]] - (Optional) text's font | |p11= font: [[String]] - (Optional, default "") text's font | ||
|p11since= arma3 0.72 | |p11since= arma3 0.72 | ||
|p12= align: [[String]] - | |p12= align: [[String]] - (Optional, default "right") text alignment. Can be: | ||
* "left" | * "left" | ||
* "right" | * "right" | ||
* "center" | * "center" | ||
|p12since= arma3 0.72 | |p12since= arma3 0.72 | ||
<!-- | |||
|p13= drawSideArrows: [[Boolean]] - (Optional, default [[false]]) unused | |||
|p13since= arma3 2.04 | |||
|p14= offsetX: [[Number]] - (Optional, default 0) unused | |||
|p14since= arma3 2.04 | |||
|p15= offsetY: [[Number]] - (Optional, default 0) unused | |||
|p15since= arma3 2.04 | |||
--> | |||
|r1= [[Nothing]] | |r1= [[Nothing]] | ||
|x1= Red icon with text: < | |x1= Red icon with text: | ||
_this | <sqf> | ||
"iconStaticMG", | findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", { | ||
_this select 0 drawIcon [ | |||
"iconStaticMG", // custom images can also be used: getMissionPath "\myFolder\myIcon.paa" | |||
[1,0,0,1], | [1,0,0,1], | ||
getPosASLVisual player, | |||
24, | 24, | ||
24, | 24, | ||
getDirVisual player, | |||
"Player Vehicle", | "Player Vehicle", | ||
1, | 1, | ||
Line 73: | Line 90: | ||
"right" | "right" | ||
] | ] | ||
}];</ | }]; | ||
</sqf> | |||
|x2= Green text only: < | |x2= Green text only: | ||
_this | <sqf> | ||
findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", { | |||
_this select 0 drawIcon [ | |||
"#(rgb,1,1,1)color(1,1,1,1)", | "#(rgb,1,1,1)color(1,1,1,1)", | ||
[0,1,0,1], | [0,1,0,1], | ||
player, | |||
0, | 0, | ||
0, | 0, | ||
0, | 0, | ||
name player | |||
] | ] | ||
}];</ | }]; | ||
</sqf> | |||
|seealso= [[drawArrow]] [[drawEllipse]] [[drawLine]] [[drawRectangle]] [[drawPolygon]] [[drawTriangle]] | |seealso= [[drawArrow]] [[drawEllipse]] [[drawLine]] [[drawRectangle]] [[drawPolygon]] [[drawTriangle]] [[drawXPolygon]] | ||
}} | }} | ||
{{Note | |||
|user= Benargee | |||
|timestamp= 20160104054100 | |||
|text= {{arma3}} 1.54<br> | |||
This command does not seem to play nice with [[onEachFrame]]. It seems to draw on the main screen while maintaing position relative to the map position<br> | This command does not seem to play nice with [[onEachFrame]]. It seems to draw on the main screen while maintaing position relative to the map position<br> | ||
Example: | Example: | ||
< | <sqf> | ||
onEachFrame { | |||
};</ | findDisplay 12 displayCtrl 51 drawIcon ['iconStaticMG', [1,0,0,1], getPosASL player, 24, 24, getDir player, 'Player Vehicle', 1, 0.03, 'TahomaB', 'right']; | ||
}; | |||
</sqf> | |||
}} | |||
</ | {{Note | ||
|user= Leopard20 | |||
|timestamp= 20220509193407 | |||
|text= The icon size always stays the same, even after zooming in/out. To make the icon get bigger with map zoom, use this for width and height size: | |||
<sqf> | |||
private _scale = 6.4 * worldSize / 8192 * ctrlMapScale _map; | |||
private _size = _sizeInMeters / _scale; | |||
</sqf> | |||
For example, the following icon has an exact size of 50 meters on the map, even after zooming in/out: | |||
<sqf> | |||
private _scale = 6.4 * worldSize / 8192 * ctrlMapScale _map; | |||
private _size = 50 / _scale; | |||
_map drawIcon ["iconStaticMG", [1,0,0,1], getPosASLVisual player, _size, _size, 0] | |||
</sqf> | |||
}} |
Latest revision as of 22:35, 1 November 2024
Description
- Description:
- Draws an icon on the map. As this command needs to be called every frame, it is preferable using the onDraw UI Event Handler.
- Groups:
- GUI Control - Map
Syntax
- Syntax:
- map drawIcon [texture, color, position, width, height, angle, text, shadow, textSize, font, align]
- Parameters:
- map: Control
- texture: String - icon texture
- color: Array - text and icon color in format Color(RGBA)
- position: Object, Array format Position2D or Position3D
- width: Number - width of the icon (but not the text)
- height: Number - height of the icon (but not the text)
- angle: Number - rotation angle of the icon not the text (add to it ctrlMapDir to show correctly on rotating minimap)
- text: String - (Optional, default "")
- shadow: Number or Boolean - (Optional, default false) can be one of:
- since 0.72
- textSize: Number - (Optional, default -1) size of the text in UI units
- since 0.72
- font: String - (Optional, default "") text's font
- since 0.72
- align: String - (Optional, default "right") text alignment. Can be:
- "left"
- "right"
- "center"
- Return Value:
- Nothing
Examples
- Example 1:
- Red icon with text:
findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", { _this select 0 drawIcon [ "iconStaticMG", // custom images can also be used: getMissionPath "\myFolder\myIcon.paa" [1,0,0,1], getPosASLVisual player, 24, 24, getDirVisual player, "Player Vehicle", 1, 0.03, "TahomaB", "right" ] }];
- Example 2:
- Green text only:
findDisplay 12 displayCtrl 51 ctrlAddEventHandler ["Draw", { _this select 0 drawIcon [ "#(rgb,1,1,1)color(1,1,1,1)", [0,1,0,1], player, 0, 0, 0, name player ] }];
Additional Information
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 Jan 04, 2016 - 05:41 (UTC)
-
Arma 3 1.54
This command does not seem to play nice with onEachFrame. It seems to draw on the main screen while maintaing position relative to the map position
Example:onEachFrame { findDisplay 12 displayCtrl 51 drawIcon ['iconStaticMG', [1,0,0,1], getPosASL player, 24, 24, getDir player, 'Player Vehicle', 1, 0.03, 'TahomaB', 'right']; };
- Posted on May 09, 2022 - 19:34 (UTC)
-
The icon size always stays the same, even after zooming in/out. To make the icon get bigger with map zoom, use this for width and height size:
For example, the following icon has an exact size of 50 meters on the map, even after zooming in/out:
Categories:
- Scripting Commands
- Introduced with Armed Assault version 1.00
- ArmA: Armed Assault: New Scripting Commands
- ArmA: Armed Assault: Scripting Commands
- Arma 2: Scripting Commands
- Arma 2: Operation Arrowhead: Scripting Commands
- Take On Helicopters: Scripting Commands
- Arma 3: Scripting Commands
- Command Group: GUI Control - Map
- Scripting Commands: Local Effect