drawIcon: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Replaced <code> with <sqf>)
m (Some wiki formatting)
Line 18: Line 18:
|gr1= GUI Control - Map
|gr1= GUI Control - Map


|descr= Draws an icon on the map. This command needs to be called every frame, preferably using the [[User_Interface_Event_Handlers#onDraw|onDraw]] UI Event Handler. Some useful icons can be found in {{ic|[[configfile]] >> "CfgVehicleIcons"}}.
|descr= Draws an icon on the map. This command needs to be called every frame, preferably using the [[User_Interface_Event_Handlers#onDraw|onDraw]] UI Event Handler. Some useful icons can be found in <sqf inline>configfile >> "CfgVehicleIcons"</sqf>.
 
|pr= Since command has to be drawn on each frame, performance can be degrade!


|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]
Line 92: Line 90:
}}
}}


<dl class="command_description">
{{Note
 
|user= Benargee
<dt><dt>
|timestamp= 20160104054100
<dd class="notedate">Posted on January 4, 2016 - 05:41 (UTC)</dd>
|text= {{arma3}} 1.54<br>
<dt class="note">[[User:Benargee|Benargee]]</dt>
<dd class="note">
Arma 3 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 {
<sqf>
findDisplay 12 displayCtrl 51 drawIcon ['iconStaticMG',[1,0,0,1],getPos player,24,24,getDir player,'Player Vehicle',1,0.03,'TahomaB','right'];
onEachFrame {
};</sqf>
findDisplay 12 displayCtrl 51 drawIcon ['iconStaticMG', [1,0,0,1], getPosASL player, 24, 24, getDir player, 'Player Vehicle', 1, 0.03, 'TahomaB', 'right'];
</dd>
};
 
</sqf>
</dl>
}}


{{Note
{{Note

Revision as of 15:24, 26 July 2022

Hover & click on the images for description

Description

Description:
Draws an icon on the map. This command needs to be called every frame, preferably using the onDraw UI Event Handler. Some useful icons can be found in configfile >> "CfgVehicleIcons".
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: Position2D, Position3D or Object
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 (but not the text)
text (Optional): String
shadow (Optional): Number or Boolean - Can be:
  • 0 (false): no shadow
  • 1: shadow (for text)
  • 2 (true): outline (works for text and for icon only if icon angle is 0)
since Arma 3 logo black.png0.72
textSize (Optional): Number - Size of the text in UI units
since Arma 3 logo black.png0.72
font: String - (Optional) text's font
since Arma 3 logo black.png0.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

See also:
drawArrow drawEllipse drawLine drawRectangle drawPolygon drawTriangle

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
Benargee - c
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']; };
Leopard20 - c
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:
private _scale = 6.4 * worldSize / 8192 * ctrlMapScale _map; private _size = _sizeInMeters / _scale;
For example, the following icon has an exact size of 50 meters on the map, even after zooming in/out:
private _scale = 6.4 * worldSize / 8192 * ctrlMapScale _map; private _size = 50 / _scale; _map drawIcon ["iconStaticMG", [1,0,0,1], getPosASLVisual player, _size, _size, 0]