onEachFrame: Difference between revisions
Jump to navigation
Jump to search
Lou Montana (talk | contribs) m (Some wiki formatting) |
Lou Montana (talk | contribs) m (Text replacement - "Since {{arma3}} v1.57 a stackable version of this EH is available:" to "Since {{arma3}} v1.58 a stackable version of this EH is available:") |
||
Line 15: | Line 15: | ||
{{Feature|arma3| | {{Feature|arma3| | ||
In order to keep compatibility between official and community content: | In order to keep compatibility between official and community content: | ||
* Since {{arma3}} v1. | * Since {{arma3}} v1.58 a stackable version of this EH is available: [[Arma 3: Mission Event Handlers#EachFrame|EachFrame Mission Event Handler]] | ||
* Before that, the scripted version of the event handler should be used instead (using [[BIS_fnc_addStackedEventHandler]] and [[BIS_fnc_removeStackedEventHandler]]). | * Before that, the scripted version of the event handler should be used instead (using [[BIS_fnc_addStackedEventHandler]] and [[BIS_fnc_removeStackedEventHandler]]). | ||
}} | }} |
Latest revision as of 19:15, 15 September 2024
Description
- Description:
- Runs given statement every frame in an unscheduled environment.
- Groups:
- Event Handlers
Syntax
- Syntax:
- onEachFrame statement
- Parameters:
- statement: String or Code
- Return Value:
- Nothing
Examples
- Example 1:
- Example 2:
- Private variables defined outside of the onEachFrame scope are not inherited:
_myVar = "bob"; MyVar = "bill"; onEachFrame { hintSilent str [_myVar, MyVar]; }; // Result: [any, "bill"]
- Example 3:
- Only one onEachFrame loop can exist at any time:
- Example 4:
- Script suspension is not permitted within onEachFrame scope:
- Example 5:
- onEachFrame { if (diag_frameNo mod 60 isEqualTo 0) then { /* code */ } }; // executes every 60 frames (every second @ 60 FPS, every two seconds @ 30 FPS, etc) onEachFrame { // this version is the closest to a precise 1 second tick if (isNil "TAG_LastHint") then { TAG_LastHint = diag_tickTime; } else { if (diag_tickTime - TAG_LastHint >= 1) then // set the duration in seconds here { hint format ["a second has passed (%1s since game start)", diag_tickTime]; TAG_LastHint = diag_tickTime; }; }; };
Additional Information
- See also:
- diag_frameNo diag_fps
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