class_tickable.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=11"/>
  6. <meta name="generator" content="Doxygen 1.9.8"/>
  7. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  8. <title>Torque2D Reference: Tickable Class Reference</title>
  9. <link href="tabs.css" rel="stylesheet" type="text/css"/>
  10. <script type="text/javascript" src="jquery.js"></script>
  11. <script type="text/javascript" src="dynsections.js"></script>
  12. <link href="search/search.css" rel="stylesheet" type="text/css"/>
  13. <script type="text/javascript" src="search/searchdata.js"></script>
  14. <script type="text/javascript" src="search/search.js"></script>
  15. <link href="doxygen.css" rel="stylesheet" type="text/css" />
  16. <link href="t2d-stylesheet-extra.css" rel="stylesheet" type="text/css"/>
  17. </head>
  18. <body>
  19. <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
  20. <div id="titlearea">
  21. <table cellspacing="0" cellpadding="0">
  22. <tbody>
  23. <tr id="projectrow">
  24. <td id="projectalign">
  25. <div id="projectname">Torque2D Reference
  26. </div>
  27. </td>
  28. </tr>
  29. </tbody>
  30. </table>
  31. </div>
  32. <!-- end header part -->
  33. <!-- Generated by Doxygen 1.9.8 -->
  34. <script type="text/javascript">
  35. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  36. var searchBox = new SearchBox("searchBox", "search/",'.html');
  37. /* @license-end */
  38. </script>
  39. <script type="text/javascript" src="menudata.js"></script>
  40. <script type="text/javascript" src="menu.js"></script>
  41. <script type="text/javascript">
  42. /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
  43. $(function() {
  44. initMenu('',true,false,'search.php','Search');
  45. $(document).ready(function() { init_search(); });
  46. });
  47. /* @license-end */
  48. </script>
  49. <div id="main-nav"></div>
  50. <!-- window showing the filter options -->
  51. <div id="MSearchSelectWindow"
  52. onmouseover="return searchBox.OnSearchSelectShow()"
  53. onmouseout="return searchBox.OnSearchSelectHide()"
  54. onkeydown="return searchBox.OnSearchSelectKey(event)">
  55. </div>
  56. <!-- iframe showing the search results (closed by default) -->
  57. <div id="MSearchResultsWindow">
  58. <div id="MSearchResults">
  59. <div class="SRPage">
  60. <div id="SRIndex">
  61. <div id="SRResults"></div>
  62. <div class="SRStatus" id="Loading">Loading...</div>
  63. <div class="SRStatus" id="Searching">Searching...</div>
  64. <div class="SRStatus" id="NoMatches">No Matches</div>
  65. </div>
  66. </div>
  67. </div>
  68. </div>
  69. </div><!-- top -->
  70. <div class="header">
  71. <div class="summary">
  72. <a href="#pub-methods">Public Member Functions</a> &#124;
  73. <a href="#pub-static-methods">Static Public Member Functions</a> &#124;
  74. <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
  75. <a href="#pro-methods">Protected Member Functions</a> &#124;
  76. <a href="class_tickable-members.html">List of all members</a> </div>
  77. <div class="headertitle"><div class="title">Tickable Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div></div>
  78. </div><!--header-->
  79. <div class="contents">
  80. <p><code>#include &lt;Tickable.h&gt;</code></p>
  81. <div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  82. <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Tickable:</div>
  83. <div id="dynsection-0-summary" class="dynsummary" style="display:block;">
  84. </div>
  85. <div id="dynsection-0-content" class="dyncontent" style="display:none;">
  86. <div class="center">
  87. <img src="class_tickable.png" usemap="#Tickable_map" alt=""/>
  88. <map id="Tickable_map" name="Tickable_map">
  89. <area href="class_default_game.html" alt="DefaultGame" shape="rect" coords="0,56,161,80"/>
  90. <area href="class_gui_control.html" alt="GuiControl" shape="rect" coords="171,56,332,80"/>
  91. <area href="class_image_frame_provider_core.html" alt="ImageFrameProviderCore" shape="rect" coords="513,56,674,80"/>
  92. <area href="class_remote_debugger_base.html" alt="RemoteDebuggerBase" shape="rect" coords="684,56,845,80"/>
  93. <area href="class_scene.html" alt="Scene" shape="rect" coords="855,56,1016,80"/>
  94. <area href="class_scene_window.html" alt="SceneWindow" shape="rect" coords="1026,56,1187,80"/>
  95. <area href="class_gui_array_ctrl.html" title="Renders a grid of cells. Gives common functionality to a few controls that inherit from it,..." alt="GuiArrayCtrl" shape="rect" coords="342,112,503,136"/>
  96. <area href="class_gui_canvas.html" alt="GuiCanvas" shape="rect" coords="342,168,503,192"/>
  97. <area href="class_gui_chain_ctrl.html" alt="GuiChainCtrl" shape="rect" coords="342,224,503,248"/>
  98. <area href="class_gui_color_picker_ctrl.html" alt="GuiColorPickerCtrl" shape="rect" coords="342,280,503,304"/>
  99. <area href="class_gui_color_popup_b_g_ctrl.html" alt="GuiColorPopupBGCtrl" shape="rect" coords="342,336,503,360"/>
  100. <area href="class_gui_color_popup_content_ctrl.html" alt="GuiColorPopupContentCtrl" shape="rect" coords="342,392,503,416"/>
  101. <area href="class_gui_drag_and_drop_ctrl.html" alt="GuiDragAndDropCtrl" shape="rect" coords="342,448,503,472"/>
  102. <area href="class_gui_drop_down_b_g_ctrl.html" alt="GuiDropDownBGCtrl" shape="rect" coords="342,504,503,528"/>
  103. <area href="class_gui_easing_support.html" title="Can be inherited from to add the members and methods needed to easily add smooth transitions between ..." alt="GuiEasingSupport" shape="rect" coords="342,560,503,584"/>
  104. <area href="class_gui_edit_ctrl.html" alt="GuiEditCtrl" shape="rect" coords="342,616,503,640"/>
  105. <area href="class_gui_editor_ruler.html" alt="GuiEditorRuler" shape="rect" coords="342,672,503,696"/>
  106. <area href="class_gui_expand_ctrl.html" alt="GuiExpandCtrl" shape="rect" coords="342,728,503,752"/>
  107. <area href="class_gui_frame_set_ctrl.html" alt="GuiFrameSetCtrl" shape="rect" coords="342,784,503,808"/>
  108. <area href="class_gui_graph_ctrl.html" alt="GuiGraphCtrl" shape="rect" coords="342,840,503,864"/>
  109. <area href="class_gui_grid_ctrl.html" alt="GuiGridCtrl" shape="rect" coords="342,896,503,920"/>
  110. <area href="class_gui_input_ctrl.html" alt="GuiInputCtrl" shape="rect" coords="342,952,503,976"/>
  111. <area href="class_gui_inspector_field.html" alt="GuiInspectorField" shape="rect" coords="342,1008,503,1032"/>
  112. <area href="class_gui_list_box_ctrl.html" alt="GuiListBoxCtrl" shape="rect" coords="342,1064,503,1088"/>
  113. <area href="class_gui_menu_b_g_ctrl.html" alt="GuiMenuBGCtrl" shape="rect" coords="342,1120,503,1144"/>
  114. <area href="class_gui_menu_bar_ctrl.html" alt="GuiMenuBarCtrl" shape="rect" coords="342,1176,503,1200"/>
  115. <area href="class_gui_menu_item_ctrl.html" alt="GuiMenuItemCtrl" shape="rect" coords="342,1232,503,1256"/>
  116. <area href="class_gui_menu_list_ctrl.html" alt="GuiMenuListCtrl" shape="rect" coords="342,1288,503,1312"/>
  117. <area href="class_gui_message_vector_ctrl.html" alt="GuiMessageVectorCtrl" shape="rect" coords="342,1344,503,1368"/>
  118. <area href="class_gui_particle_graph_inspector.html" alt="GuiParticleGraphInspector" shape="rect" coords="342,1400,503,1424"/>
  119. <area href="class_gui_progress_ctrl.html" alt="GuiProgressCtrl" shape="rect" coords="342,1456,503,1480"/>
  120. <area href="class_gui_scroll_ctrl.html" alt="GuiScrollCtrl" shape="rect" coords="342,1512,503,1536"/>
  121. <area href="class_gui_slider_ctrl.html" alt="GuiSliderCtrl" shape="rect" coords="342,1568,503,1592"/>
  122. <area href="class_gui_sprite_ctrl.html" alt="GuiSpriteCtrl" shape="rect" coords="342,1624,503,1648"/>
  123. <area href="class_gui_tab_book_ctrl.html" alt="GuiTabBookCtrl" shape="rect" coords="342,1680,503,1704"/>
  124. <area href="class_gui_tab_page_ctrl.html" alt="GuiTabPageCtrl" shape="rect" coords="342,1736,503,1760"/>
  125. <area href="class_gui_text_edit_ctrl.html" alt="GuiTextEditCtrl" shape="rect" coords="342,1792,503,1816"/>
  126. <area href="class_gui_window_ctrl.html" alt="GuiWindowCtrl" shape="rect" coords="342,1848,503,1872"/>
  127. <area href="class_scene_window.html" alt="SceneWindow" shape="rect" coords="342,1904,503,1928"/>
  128. <area href="class_image_frame_provider.html" alt="ImageFrameProvider" shape="rect" coords="513,112,674,136"/>
  129. <area href="class_remote_debugger1.html" alt="RemoteDebugger1" shape="rect" coords="684,112,845,136"/>
  130. <area href="class_editor_toy_scene_window.html" alt="EditorToySceneWindow" shape="rect" coords="1026,112,1187,136"/>
  131. </map>
  132. </div></div>
  133. <table class="memberdecls">
  134. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
  135. Public Member Functions</h2></td></tr>
  136. <tr class="memitem:a5e3128cfbe9129b24c8631ca1ddcd21c" id="r_a5e3128cfbe9129b24c8631ca1ddcd21c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#a5e3128cfbe9129b24c8631ca1ddcd21c">Tickable</a> ()</td></tr>
  137. <tr class="separator:a5e3128cfbe9129b24c8631ca1ddcd21c"><td class="memSeparator" colspan="2">&#160;</td></tr>
  138. <tr class="memitem:ad086b77217bcb4a79d71a5fadead250f" id="r_ad086b77217bcb4a79d71a5fadead250f"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#ad086b77217bcb4a79d71a5fadead250f">~Tickable</a> ()</td></tr>
  139. <tr class="separator:ad086b77217bcb4a79d71a5fadead250f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  140. <tr class="memitem:a8ce3ce19eb4a8944f1c8f4b4dccb8b67" id="r_a8ce3ce19eb4a8944f1c8f4b4dccb8b67"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#a8ce3ce19eb4a8944f1c8f4b4dccb8b67">isProcessingTicks</a> () const</td></tr>
  141. <tr class="separator:a8ce3ce19eb4a8944f1c8f4b4dccb8b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
  142. <tr class="memitem:a8c7201617a14b9ed862bbe4fe6527370" id="r_a8c7201617a14b9ed862bbe4fe6527370"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#a8c7201617a14b9ed862bbe4fe6527370">setProcessTicks</a> (bool tick=true)</td></tr>
  143. <tr class="separator:a8c7201617a14b9ed862bbe4fe6527370"><td class="memSeparator" colspan="2">&#160;</td></tr>
  144. </table><table class="memberdecls">
  145. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
  146. Static Public Member Functions</h2></td></tr>
  147. <tr class="memitem:aedf561d239a439eccf0b5d06901167d7" id="r_aedf561d239a439eccf0b5d06901167d7"><td class="memItemLeft" align="right" valign="top">static bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#aedf561d239a439eccf0b5d06901167d7">advanceTime</a> (U32 timeDelta)</td></tr>
  148. <tr class="separator:aedf561d239a439eccf0b5d06901167d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
  149. </table><table class="memberdecls">
  150. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-attribs" name="pub-static-attribs"></a>
  151. Static Public Attributes</h2></td></tr>
  152. <tr class="memitem:a328b0e594667be606174f8df66f98afb" id="r_a328b0e594667be606174f8df66f98afb"><td class="memItemLeft" align="right" valign="top">static const U32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#a328b0e594667be606174f8df66f98afb">smTickShift</a> = 4</td></tr>
  153. <tr class="memdesc:a328b0e594667be606174f8df66f98afb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Shift value to control how often Ticks occur. <br /></td></tr>
  154. <tr class="separator:a328b0e594667be606174f8df66f98afb"><td class="memSeparator" colspan="2">&#160;</td></tr>
  155. <tr class="memitem:a9c00bdc780fce65d2d57055093bb28c4" id="r_a9c00bdc780fce65d2d57055093bb28c4"><td class="memItemLeft" align="right" valign="top">static const U32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#a9c00bdc780fce65d2d57055093bb28c4">smTickMs</a> = ( 1 &lt;&lt; <a class="el" href="class_tickable.html#a328b0e594667be606174f8df66f98afb">smTickShift</a> )</td></tr>
  156. <tr class="memdesc:a9c00bdc780fce65d2d57055093bb28c4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of milliseconds per tick, 32 in this case. <br /></td></tr>
  157. <tr class="separator:a9c00bdc780fce65d2d57055093bb28c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
  158. <tr class="memitem:afec655d10b6a2d0eb2cd6d2362c626b5" id="r_afec655d10b6a2d0eb2cd6d2362c626b5"><td class="memItemLeft" align="right" valign="top">static const F32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#afec655d10b6a2d0eb2cd6d2362c626b5">smTickSec</a> = ( F32( <a class="el" href="class_tickable.html#a9c00bdc780fce65d2d57055093bb28c4">Tickable::smTickMs</a> ) / 1000.f )</td></tr>
  159. <tr class="memdesc:afec655d10b6a2d0eb2cd6d2362c626b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Fraction of a second per tick. <br /></td></tr>
  160. <tr class="separator:afec655d10b6a2d0eb2cd6d2362c626b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
  161. <tr class="memitem:aab266025d7181bbfb16f3af77250eec8" id="r_aab266025d7181bbfb16f3af77250eec8"><td class="memItemLeft" align="right" valign="top">static const U32&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#aab266025d7181bbfb16f3af77250eec8">smTickMask</a> = ( <a class="el" href="class_tickable.html#a9c00bdc780fce65d2d57055093bb28c4">smTickMs</a> - 1 )</td></tr>
  162. <tr class="separator:aab266025d7181bbfb16f3af77250eec8"><td class="memSeparator" colspan="2">&#160;</td></tr>
  163. </table><table class="memberdecls">
  164. <tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pro-methods" name="pro-methods"></a>
  165. Protected Member Functions</h2></td></tr>
  166. <tr class="memitem:a6901acb62b785a45f32cafb96d36f33f" id="r_a6901acb62b785a45f32cafb96d36f33f"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#a6901acb62b785a45f32cafb96d36f33f">interpolateTick</a> (F32 delta)=0</td></tr>
  167. <tr class="separator:a6901acb62b785a45f32cafb96d36f33f"><td class="memSeparator" colspan="2">&#160;</td></tr>
  168. <tr class="memitem:ac01d76136baea1c65146a1975af38e90" id="r_ac01d76136baea1c65146a1975af38e90"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#ac01d76136baea1c65146a1975af38e90">processTick</a> ()=0</td></tr>
  169. <tr class="separator:ac01d76136baea1c65146a1975af38e90"><td class="memSeparator" colspan="2">&#160;</td></tr>
  170. <tr class="memitem:a400778436529c299bbc717643edf04a1" id="r_a400778436529c299bbc717643edf04a1"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_tickable.html#a400778436529c299bbc717643edf04a1">advanceTime</a> (F32 timeDelta)=0</td></tr>
  171. <tr class="separator:a400778436529c299bbc717643edf04a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
  172. </table>
  173. <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
  174. <div class="textblock"><p>This interface allows you to let any object be ticked. You use it like so: </p><div class="fragment"><div class="line"><span class="keyword">class </span>FooClass : <span class="keyword">public</span> <a class="code hl_class" href="class_sim_object.html">SimObject</a>, <span class="keyword">public</span> <span class="keyword">virtual</span> <a class="code hl_class" href="class_tickable.html">Tickable</a></div>
  175. <div class="line">{</div>
  176. <div class="line"> <span class="comment">// You still mark SimObject as Parent</span></div>
  177. <div class="line"> typdef <a class="code hl_class" href="class_sim_object.html">SimObject</a> Parent;</div>
  178. <div class="line"><span class="keyword">private</span>:</div>
  179. <div class="line">...</div>
  180. <div class="line"> </div>
  181. <div class="line">protected:</div>
  182. <div class="line"> <span class="comment">// These three methods are the interface for Tickable</span></div>
  183. <div class="line"> <span class="keyword">virtual</span> <span class="keywordtype">void</span> interpolateTick( F32 delta );</div>
  184. <div class="line"> <span class="keyword">virtual</span> <span class="keywordtype">void</span> processTick();</div>
  185. <div class="line"> <span class="keyword">virtual</span> <span class="keywordtype">void</span> advanceTime( F32 timeDelta );</div>
  186. <div class="line"> </div>
  187. <div class="line"><span class="keyword">public</span>:</div>
  188. <div class="line">...</div>
  189. <div class="line">};</div>
  190. <div class="ttc" id="aclass_sim_object_html"><div class="ttname"><a href="class_sim_object.html">SimObject</a></div><div class="ttdef"><b>Definition</b> simObject.h:234</div></div>
  191. <div class="ttc" id="aclass_tickable_html"><div class="ttname"><a href="class_tickable.html">Tickable</a></div><div class="ttdef"><b>Definition</b> Tickable.h:82</div></div>
  192. </div><!-- fragment --><p> Please note the three methods you must implement to use <a class="el" href="class_tickable.html">Tickable</a>, but don't worry. If you forget, the compiler will tell you so. Also note that the typedef for Parent should NOT BE SET to <a class="el" href="class_tickable.html">Tickable</a>, the compiler will <em>probably</em> also tell you if you forget that. Last, but assuridly not least is that you note the way that the inheritance is done: public <b>virtual</b> <a class="el" href="class_tickable.html">Tickable</a> It is very important that you keep the virtual keyword in there, otherwise proper behavior is not guaranteed. You have been warned.</p>
  193. <p>The point of a tickable object is that the object gets ticks at a fixed rate which is one tick every 32ms. This means, also, that if an object doesn't get updated for 64ms, that the next update it will get two-ticks. Basically it comes down to this. You are assured to get one tick per 32ms of time passing provided that isProcessingTicks returns true when <a class="el" href="class_tickable.html">Tickable</a> calls it.</p>
  194. <p>isProcessingTicks is a virtual method and you can (should you want to) override it and put some extended functionality to decide if you want to receive tick-notification or not.</p>
  195. <p>The other half of this is that you get time-notification from advanceTime. advanceTime lets you know when time passes regardless of the return value of isProcessingTicks. The object WILL get the advanceTime call every single update. The argument passed to advanceTime is the time since the last call to advanceTime. Updates are not based on the 32ms tick time. Updates are dependant on frame-rate. So you may get 200 advanceTime calls in a second, or you may only get 20. There is no way of assuring consistent calls of advanceTime like there is with processTick. Both are useful for different things, and it is important to understand the differences between them.</p>
  196. <p>Interpolation is the last part of the <a class="el" href="class_tickable.html">Tickable</a> interface. It is called every update, as long as isProcessingTicks evaluates to true on the object. This is used to interpolate between 32ms ticks. The argument passed to interpolateTick is the time since the last call to processTick.</p>
  197. <dl class="todo"><dt><b><a class="el" href="todo.html#_todo000001">Todo:</a></b></dt><dd>Support processBefore/After and move the GameBase processing over to use <a class="el" href="class_tickable.html">Tickable</a> </dd></dl>
  198. </div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
  199. <a id="a5e3128cfbe9129b24c8631ca1ddcd21c" name="a5e3128cfbe9129b24c8631ca1ddcd21c"></a>
  200. <h2 class="memtitle"><span class="permalink"><a href="#a5e3128cfbe9129b24c8631ca1ddcd21c">&#9670;&#160;</a></span>Tickable()</h2>
  201. <div class="memitem">
  202. <div class="memproto">
  203. <table class="memname">
  204. <tr>
  205. <td class="memname"><a class="el" href="class_tickable.html">Tickable</a> </td>
  206. <td>(</td>
  207. <td class="paramname"></td><td>)</td>
  208. <td></td>
  209. </tr>
  210. </table>
  211. </div><div class="memdoc">
  212. <p>Constructor This will add the object to the process list </p>
  213. </div>
  214. </div>
  215. <a id="ad086b77217bcb4a79d71a5fadead250f" name="ad086b77217bcb4a79d71a5fadead250f"></a>
  216. <h2 class="memtitle"><span class="permalink"><a href="#ad086b77217bcb4a79d71a5fadead250f">&#9670;&#160;</a></span>~Tickable()</h2>
  217. <div class="memitem">
  218. <div class="memproto">
  219. <table class="mlabels">
  220. <tr>
  221. <td class="mlabels-left">
  222. <table class="memname">
  223. <tr>
  224. <td class="memname">~<a class="el" href="class_tickable.html">Tickable</a> </td>
  225. <td>(</td>
  226. <td class="paramname"></td><td>)</td>
  227. <td></td>
  228. </tr>
  229. </table>
  230. </td>
  231. <td class="mlabels-right">
  232. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  233. </tr>
  234. </table>
  235. </div><div class="memdoc">
  236. <p>Destructor Remove this object from the process list </p>
  237. </div>
  238. </div>
  239. <h2 class="groupheader">Member Function Documentation</h2>
  240. <a id="a400778436529c299bbc717643edf04a1" name="a400778436529c299bbc717643edf04a1"></a>
  241. <h2 class="memtitle"><span class="permalink"><a href="#a400778436529c299bbc717643edf04a1">&#9670;&#160;</a></span>advanceTime() <span class="overload">[1/2]</span></h2>
  242. <div class="memitem">
  243. <div class="memproto">
  244. <table class="mlabels">
  245. <tr>
  246. <td class="mlabels-left">
  247. <table class="memname">
  248. <tr>
  249. <td class="memname">virtual void advanceTime </td>
  250. <td>(</td>
  251. <td class="paramtype">F32&#160;</td>
  252. <td class="paramname"><em>timeDelta</em></td><td>)</td>
  253. <td></td>
  254. </tr>
  255. </table>
  256. </td>
  257. <td class="mlabels-right">
  258. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  259. </tr>
  260. </table>
  261. </div><div class="memdoc">
  262. <p>This method is called once every frame regardless of the return value of isProcessingTicks and informs the object of the passage of time </p>
  263. <p>Implemented in <a class="el" href="class_image_frame_provider_core.html#af6fb95f4d0573e394a66d791adfa1cc7">ImageFrameProviderCore</a>, <a class="el" href="class_gui_sprite_ctrl.html#af6fb95f4d0573e394a66d791adfa1cc7">GuiSpriteCtrl</a>, <a class="el" href="class_scene_window.html#af6fb95f4d0573e394a66d791adfa1cc7">SceneWindow</a>, <a class="el" href="class_scene.html#af6fb95f4d0573e394a66d791adfa1cc7">Scene</a>, <a class="el" href="class_remote_debugger_base.html#af6fb95f4d0573e394a66d791adfa1cc7">RemoteDebuggerBase</a>, <a class="el" href="class_default_game.html#acc9ac5db8d1c6afe84403f3a525e59dd">DefaultGame</a>, and <a class="el" href="class_gui_control.html#af6fb95f4d0573e394a66d791adfa1cc7">GuiControl</a>.</p>
  264. </div>
  265. </div>
  266. <a id="aedf561d239a439eccf0b5d06901167d7" name="aedf561d239a439eccf0b5d06901167d7"></a>
  267. <h2 class="memtitle"><span class="permalink"><a href="#aedf561d239a439eccf0b5d06901167d7">&#9670;&#160;</a></span>advanceTime() <span class="overload">[2/2]</span></h2>
  268. <div class="memitem">
  269. <div class="memproto">
  270. <table class="mlabels">
  271. <tr>
  272. <td class="mlabels-left">
  273. <table class="memname">
  274. <tr>
  275. <td class="memname">bool advanceTime </td>
  276. <td>(</td>
  277. <td class="paramtype">U32&#160;</td>
  278. <td class="paramname"><em>timeDelta</em></td><td>)</td>
  279. <td></td>
  280. </tr>
  281. </table>
  282. </td>
  283. <td class="mlabels-right">
  284. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  285. </tr>
  286. </table>
  287. </div><div class="memdoc">
  288. <p>This is called in clientProcess to advance the time for all <a class="el" href="class_tickable.html">Tickable</a> objects </p><dl class="section return"><dt>Returns</dt><dd>True if any ticks were sent </dd></dl>
  289. <dl class="section see"><dt>See also</dt><dd>clientProcess </dd></dl>
  290. </div>
  291. </div>
  292. <a id="a6901acb62b785a45f32cafb96d36f33f" name="a6901acb62b785a45f32cafb96d36f33f"></a>
  293. <h2 class="memtitle"><span class="permalink"><a href="#a6901acb62b785a45f32cafb96d36f33f">&#9670;&#160;</a></span>interpolateTick()</h2>
  294. <div class="memitem">
  295. <div class="memproto">
  296. <table class="mlabels">
  297. <tr>
  298. <td class="mlabels-left">
  299. <table class="memname">
  300. <tr>
  301. <td class="memname">virtual void interpolateTick </td>
  302. <td>(</td>
  303. <td class="paramtype">F32&#160;</td>
  304. <td class="paramname"><em>delta</em></td><td>)</td>
  305. <td></td>
  306. </tr>
  307. </table>
  308. </td>
  309. <td class="mlabels-right">
  310. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  311. </tr>
  312. </table>
  313. </div><div class="memdoc">
  314. <p>This method is called every frame and lets the control interpolate between ticks so you can smooth things as long as isProcessingTicks returns true when it is called on the object </p>
  315. <p>Implemented in <a class="el" href="class_image_frame_provider_core.html#a62ec28263feafe2ebd8c2083c174c5a9">ImageFrameProviderCore</a>, <a class="el" href="class_gui_sprite_ctrl.html#a62ec28263feafe2ebd8c2083c174c5a9">GuiSpriteCtrl</a>, <a class="el" href="class_scene_window.html#a6ac268bfd7ed2654af2754a2229626a5">SceneWindow</a>, <a class="el" href="class_scene.html#a6ac268bfd7ed2654af2754a2229626a5">Scene</a>, <a class="el" href="class_remote_debugger_base.html#a62ec28263feafe2ebd8c2083c174c5a9">RemoteDebuggerBase</a>, <a class="el" href="class_default_game.html#a62ec28263feafe2ebd8c2083c174c5a9">DefaultGame</a>, and <a class="el" href="class_gui_control.html#a62ec28263feafe2ebd8c2083c174c5a9">GuiControl</a>.</p>
  316. </div>
  317. </div>
  318. <a id="a8ce3ce19eb4a8944f1c8f4b4dccb8b67" name="a8ce3ce19eb4a8944f1c8f4b4dccb8b67"></a>
  319. <h2 class="memtitle"><span class="permalink"><a href="#a8ce3ce19eb4a8944f1c8f4b4dccb8b67">&#9670;&#160;</a></span>isProcessingTicks()</h2>
  320. <div class="memitem">
  321. <div class="memproto">
  322. <table class="mlabels">
  323. <tr>
  324. <td class="mlabels-left">
  325. <table class="memname">
  326. <tr>
  327. <td class="memname">virtual bool isProcessingTicks </td>
  328. <td>(</td>
  329. <td class="paramname"></td><td>)</td>
  330. <td> const</td>
  331. </tr>
  332. </table>
  333. </td>
  334. <td class="mlabels-right">
  335. <span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span> </td>
  336. </tr>
  337. </table>
  338. </div><div class="memdoc">
  339. <p>Is this object wanting to receive tick notifications </p><dl class="section return"><dt>Returns</dt><dd>True if object wants tick notifications </dd></dl>
  340. </div>
  341. </div>
  342. <a id="ac01d76136baea1c65146a1975af38e90" name="ac01d76136baea1c65146a1975af38e90"></a>
  343. <h2 class="memtitle"><span class="permalink"><a href="#ac01d76136baea1c65146a1975af38e90">&#9670;&#160;</a></span>processTick()</h2>
  344. <div class="memitem">
  345. <div class="memproto">
  346. <table class="mlabels">
  347. <tr>
  348. <td class="mlabels-left">
  349. <table class="memname">
  350. <tr>
  351. <td class="memname">virtual void processTick </td>
  352. <td>(</td>
  353. <td class="paramname"></td><td>)</td>
  354. <td></td>
  355. </tr>
  356. </table>
  357. </td>
  358. <td class="mlabels-right">
  359. <span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">pure virtual</span></span> </td>
  360. </tr>
  361. </table>
  362. </div><div class="memdoc">
  363. <p>This method is called once every 32ms if isProcessingTicks returns true when called on the object </p>
  364. <p>Implemented in <a class="el" href="class_image_frame_provider_core.html#a395494ca30433dbf1aabb391b3844b3b">ImageFrameProviderCore</a>, <a class="el" href="class_gui_sprite_ctrl.html#a395494ca30433dbf1aabb391b3844b3b">GuiSpriteCtrl</a>, <a class="el" href="class_scene_window.html#a395494ca30433dbf1aabb391b3844b3b">SceneWindow</a>, <a class="el" href="class_scene.html#a395494ca30433dbf1aabb391b3844b3b">Scene</a>, <a class="el" href="class_gui_expand_ctrl.html#a395494ca30433dbf1aabb391b3844b3b">GuiExpandCtrl</a>, <a class="el" href="class_gui_control.html#a3fa9439f27c61f4ebd63e9e796524e53">GuiControl</a>, <a class="el" href="class_gui_easing_support.html#a395494ca30433dbf1aabb391b3844b3b">GuiEasingSupport</a>, <a class="el" href="class_gui_progress_ctrl.html#a395494ca30433dbf1aabb391b3844b3b">GuiProgressCtrl</a>, <a class="el" href="class_remote_debugger_base.html#a7543f5c09b50bb610c80991050bd0b4a">RemoteDebuggerBase</a>, and <a class="el" href="class_default_game.html#a7543f5c09b50bb610c80991050bd0b4a">DefaultGame</a>.</p>
  365. </div>
  366. </div>
  367. <a id="a8c7201617a14b9ed862bbe4fe6527370" name="a8c7201617a14b9ed862bbe4fe6527370"></a>
  368. <h2 class="memtitle"><span class="permalink"><a href="#a8c7201617a14b9ed862bbe4fe6527370">&#9670;&#160;</a></span>setProcessTicks()</h2>
  369. <div class="memitem">
  370. <div class="memproto">
  371. <table class="mlabels">
  372. <tr>
  373. <td class="mlabels-left">
  374. <table class="memname">
  375. <tr>
  376. <td class="memname">void setProcessTicks </td>
  377. <td>(</td>
  378. <td class="paramtype">bool&#160;</td>
  379. <td class="paramname"><em>tick</em> = <code>true</code></td><td>)</td>
  380. <td></td>
  381. </tr>
  382. </table>
  383. </td>
  384. <td class="mlabels-right">
  385. <span class="mlabels"><span class="mlabel">virtual</span></span> </td>
  386. </tr>
  387. </table>
  388. </div><div class="memdoc">
  389. <p>Sets this object as either tick processing or not </p><dl class="params"><dt>Parameters</dt><dd>
  390. <table class="params">
  391. <tr><td class="paramname">tick</td><td>True if this object should process ticks </td></tr>
  392. </table>
  393. </dd>
  394. </dl>
  395. <p>Reimplemented in <a class="el" href="class_image_frame_provider_core.html#a94b8d13ff159fb7f3c958a23bf97470e">ImageFrameProviderCore</a>.</p>
  396. </div>
  397. </div>
  398. <h2 class="groupheader">Member Data Documentation</h2>
  399. <a id="aab266025d7181bbfb16f3af77250eec8" name="aab266025d7181bbfb16f3af77250eec8"></a>
  400. <h2 class="memtitle"><span class="permalink"><a href="#aab266025d7181bbfb16f3af77250eec8">&#9670;&#160;</a></span>smTickMask</h2>
  401. <div class="memitem">
  402. <div class="memproto">
  403. <table class="mlabels">
  404. <tr>
  405. <td class="mlabels-left">
  406. <table class="memname">
  407. <tr>
  408. <td class="memname">const U32 smTickMask = ( <a class="el" href="class_tickable.html#a9c00bdc780fce65d2d57055093bb28c4">smTickMs</a> - 1 )</td>
  409. </tr>
  410. </table>
  411. </td>
  412. <td class="mlabels-right">
  413. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  414. </tr>
  415. </table>
  416. </div><div class="memdoc">
  417. </div>
  418. </div>
  419. <a id="a9c00bdc780fce65d2d57055093bb28c4" name="a9c00bdc780fce65d2d57055093bb28c4"></a>
  420. <h2 class="memtitle"><span class="permalink"><a href="#a9c00bdc780fce65d2d57055093bb28c4">&#9670;&#160;</a></span>smTickMs</h2>
  421. <div class="memitem">
  422. <div class="memproto">
  423. <table class="mlabels">
  424. <tr>
  425. <td class="mlabels-left">
  426. <table class="memname">
  427. <tr>
  428. <td class="memname">const U32 smTickMs = ( 1 &lt;&lt; <a class="el" href="class_tickable.html#a328b0e594667be606174f8df66f98afb">smTickShift</a> )</td>
  429. </tr>
  430. </table>
  431. </td>
  432. <td class="mlabels-right">
  433. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  434. </tr>
  435. </table>
  436. </div><div class="memdoc">
  437. <p>Number of milliseconds per tick, 32 in this case. </p>
  438. </div>
  439. </div>
  440. <a id="afec655d10b6a2d0eb2cd6d2362c626b5" name="afec655d10b6a2d0eb2cd6d2362c626b5"></a>
  441. <h2 class="memtitle"><span class="permalink"><a href="#afec655d10b6a2d0eb2cd6d2362c626b5">&#9670;&#160;</a></span>smTickSec</h2>
  442. <div class="memitem">
  443. <div class="memproto">
  444. <table class="mlabels">
  445. <tr>
  446. <td class="mlabels-left">
  447. <table class="memname">
  448. <tr>
  449. <td class="memname">const F32 smTickSec = ( F32( <a class="el" href="class_tickable.html#a9c00bdc780fce65d2d57055093bb28c4">Tickable::smTickMs</a> ) / 1000.f )</td>
  450. </tr>
  451. </table>
  452. </td>
  453. <td class="mlabels-right">
  454. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  455. </tr>
  456. </table>
  457. </div><div class="memdoc">
  458. <p>Fraction of a second per tick. </p>
  459. </div>
  460. </div>
  461. <a id="a328b0e594667be606174f8df66f98afb" name="a328b0e594667be606174f8df66f98afb"></a>
  462. <h2 class="memtitle"><span class="permalink"><a href="#a328b0e594667be606174f8df66f98afb">&#9670;&#160;</a></span>smTickShift</h2>
  463. <div class="memitem">
  464. <div class="memproto">
  465. <table class="mlabels">
  466. <tr>
  467. <td class="mlabels-left">
  468. <table class="memname">
  469. <tr>
  470. <td class="memname">const U32 smTickShift = 4</td>
  471. </tr>
  472. </table>
  473. </td>
  474. <td class="mlabels-right">
  475. <span class="mlabels"><span class="mlabel">static</span></span> </td>
  476. </tr>
  477. </table>
  478. </div><div class="memdoc">
  479. <p>Shift value to control how often Ticks occur. </p>
  480. </div>
  481. </div>
  482. <hr/>The documentation for this class was generated from the following files:<ul>
  483. <li>platform/<b>Tickable.h</b></li>
  484. <li>platform/<b>Tickable.cc</b></li>
  485. </ul>
  486. </div><!-- contents -->
  487. <!-- start footer part -->
  488. <hr class="footer"/><address class="footer"><small>
  489. Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
  490. </small></address>
  491. </body>
  492. </html>