DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ GetOnScreenPosition()

void ScriptedWidgetEventHandler::GetOnScreenPosition ( out float x,
out float y )
inlineprotected

См. определение в файле ObjectFollower.c строка 61

62 {
63 const float DEFAULT_HANDLE_OFFSET = 0.2;
64
65 float pivotYOffset = 0.0;
66
67 bool ignorePivot = false;
68 bool traceMatched = false;
69 bool isDefaultPos = false;
70
71 vector objectPos;
72
74 {
75 pivotYOffset = m_PivotYOffset;
76
77 traceMatched = true;
78 objectPos = m_TargetObject.GetPosition();
79 if ( pivotYOffset != 0.0 )
80 { objectPos[1] = objectPos[1] + pivotYOffset; }
81 else
82 { objectPos[1] = objectPos[1] + DEFAULT_HANDLE_OFFSET; }
83 }
84 else
85 {
86 // default position for the action cursor
87 traceMatched = false;
88 isDefaultPos = true;
89 }
90
91 if ( ignorePivot && !traceMatched )
92 {
93 // hides the widget if we are in situation that the widget will be displayed on pivot point
94 // and we do not want to display it
95 x = 0.0;
96 y = 0.0;
97 }
98 else
99 {
100 // calculate screen position from traced results
101 if( isDefaultPos )
102 {
103 int w,h;
104 GetScreenSize(w, h);
105 x = w/2;
106 y = h/2;
107 }
108 else
109 {
110 vector screen_pos = GetGame().GetScreenPos( objectPos );
111 x = screen_pos[0];
112 y = screen_pos[1];
113 }
114 }
115
116 objectPos = "0 0 0";
117 isDefaultPos = false;
118 }
Icon x
Icon y
proto native vector GetScreenPos(vector world_pos)
Transforms position in world to position in screen in pixels as x, y component of vector,...
reference int m_PivotYOffset
Определения ObjectFollower.c:3
Object m_TargetObject
Определения ObjectFollower.c:6
proto native CGame GetGame()
proto void GetScreenSize(out int x, out int y)

Перекрестные ссылки GetGame(), CGame::GetScreenPos(), GetScreenSize(), m_PivotYOffset, m_TargetObject, x и y.

Используется в Update().