<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>GHAGH!!! I think my timing function is off.</title>
		<link>http://www.allegro.cc/forums/view/586675</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Wed, 26 Jul 2006 18:19:40 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I tried to find the problem myself but I&#039;ve been looking for an hour and my hair hurts so I decided to finally ask.  It&#039;s probably something stupid but here goes.</p><p>When I compile this:
</p><div class="source-code"><div class="toolbar"><span class="button numbers"><b>#</b></span><span class="button select">Select</span><span class="button expand">Expand</span></div><div class="inner"><span class="number">   1</span><span class="c">/*********************************************************************</span>
<span class="number">   2</span><span class="c">The RachMan Video Game early dev source code - dev 2.0a</span>
<span class="number">   3</span><span class="c">Author: Dustin Gray</span>
<span class="number">   4</span><span class="c">*********************************************************************/</span>
<span class="number">   5</span><span class="p">#include &lt;allegro.h&gt;</span>
<span class="number">   6</span><span class="c">//includes the datafile headers</span>
<span class="number">   7</span><span class="p">#include "datf_dev.h"</span>
<span class="number">   8</span><span class="p">#include "datf_rach.h"</span>
<span class="number">   9</span>
<span class="number">  10</span><span class="c">//declares the time counter</span>
<span class="number">  11</span><span class="k1">volatile</span> <span class="k1">long</span> speed_counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number">  12</span><span class="k1">void</span> increment_speed_counter<span class="k2">(</span><span class="k2">)</span> <span class="c">//A function to increment the speed counter</span>
<span class="number">  13</span><span class="k2">{</span>
<span class="number">  14</span>  speed_counter<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span> <span class="c">// This will just increment the speed counter by one</span>
<span class="number">  15</span><span class="k2">}</span>
<span class="number">  16</span><a href="http://www.allegro.cc/manual/END_OF_FUNCTION" target="_blank"><span class="a">END_OF_FUNCTION</span></a><span class="k2">(</span>increment_speed_counter<span class="k2">)</span><span class="k2">;</span>
<span class="number">  17</span>
<span class="number">  18</span>
<span class="number">  19</span><span class="c">//Declarations of integers</span>
<span class="number">  20</span><span class="k1">int</span> jump_height <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">// RachMan's jump height</span>
<span class="number">  21</span><span class="k1">int</span> frame_counter<span class="k2">;</span><span class="c">//counts the frames</span>
<span class="number">  22</span><span class="k1">int</span> last_key<span class="k2">;</span><span class="c">//remembers the last key pressed</span>
<span class="number">  23</span><span class="k1">int</span> rach_pos_x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">// Rachman's horizontal position tracker</span>
<span class="number">  24</span><span class="k1">int</span> rach_pos_y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">// Rachman's vertical position tracker</span>
<span class="number">  25</span>
<span class="number">  26</span><span class="c">//declares the datafiles and bitmaps</span>
<span class="number">  27</span><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>dev <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  28</span><a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>rach <span class="k3">=</span> NULL<span class="k2">;</span>
<span class="number">  29</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> buffer<span class="k2">;</span>
<span class="number">  30</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> mapbuff<span class="k2">;</span>
<span class="number">  31</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> platform<span class="k2">;</span>
<span class="number">  32</span>
<span class="number">  33</span><span class="c">// Rachman's bounding box info -- this is temporary till I make a struct for this kind of info</span>
<span class="number">  34</span><span class="k1">int</span> rachman_box_left <span class="k3">=</span> rach_pos_x <span class="k3">+</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  35</span><span class="k1">int</span> rachman_box_top <span class="k3">=</span> rach_pos_y <span class="k3">+</span> <span class="n">10</span><span class="k2">;</span>
<span class="number">  36</span><span class="k1">int</span> rachman_box_right <span class="k3">=</span> <span class="k2">(</span>rachman_box_left <span class="k3">+</span> <span class="n">10</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  37</span><span class="k1">int</span> rachman_box_bottom <span class="k3">=</span> <span class="k2">(</span>rachman_box_top <span class="k3">+</span> <span class="n">10</span><span class="k2">)</span><span class="k2">;</span>
<span class="number">  38</span><span class="k1">int</span> collision <span class="k3">=</span> FALSE<span class="k2">;</span>
<span class="number">  39</span><span class="k1">int</span> gravity <span class="k3">=</span> TRUE<span class="k2">;</span>
<span class="number">  40</span>
<span class="number">  41</span><span class="k1">void</span> Draw<span class="k2">(</span><span class="k2">)</span>
<span class="number">  42</span><span class="k2">{</span>
<span class="number">  43</span>  <span class="c">//draw_sprite(buffer, mapbuff, 0, 0); //draws the mapbuffer to the buffer</span>
<span class="number">  44</span>  <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, buffer, <span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//draws the buffer onto the screen</span>
<span class="number">  45</span><span class="k2">}</span>
<span class="number">  46</span><a href="http://www.allegro.cc/manual/END_OF_FUNCTION" target="_blank"><span class="a">END_OF_FUNCTION</span></a><span class="k2">(</span>Draw<span class="k2">)</span><span class="k2">;</span>
<span class="number">  47</span>
<span class="number">  48</span><span class="k1">void</span> Move_rachman<span class="k2">(</span><span class="k2">)</span>
<span class="number">  49</span><span class="k2">{</span>
<span class="number">  50</span>  <span class="k1">if</span> <span class="k2">(</span>rachman_box_bottom <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">240</span><span class="k2">)</span>
<span class="number">  51</span>  <span class="k2">{</span>
<span class="number">  52</span>  collision <span class="k3">=</span> TRUE<span class="k2">;</span>
<span class="number">  53</span>  <span class="k2">}</span>
<span class="number">  54</span>  <span class="k1">if</span> <span class="k2">(</span>collision <span class="k3">=</span><span class="k3">=</span> TRUE<span class="k2">)</span>
<span class="number">  55</span>  <span class="k2">{</span>
<span class="number">  56</span>  gravity <span class="k3">=</span> FALSE<span class="k2">;</span>
<span class="number">  57</span>  <span class="k2">}</span>
<span class="number">  58</span>  
<span class="number">  59</span>  <span class="k1">while</span> <span class="k2">(</span>speed_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  60</span>  <span class="k2">{</span>
<span class="number">  61</span>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span><span class="k2">)</span><span class="c">// If the user hits the right key, change the picture's X coordinate</span>
<span class="number">  62</span>    <span class="k2">{</span>
<span class="number">  63</span>      rach_pos_x <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span><span class="c">// Moving right so up the X coordinate by 1</span>
<span class="number">  64</span>    <span class="k2">}</span>
<span class="number">  65</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span><span class="k2">)</span><span class="c">// Ditto' - only for left key</span>
<span class="number">  66</span>    <span class="k2">{</span>
<span class="number">  67</span>      rach_pos_x <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span><span class="c">// Moving left, so lower the X coordinate by 1</span>
<span class="number">  68</span>    <span class="k2">}</span> 
<span class="number">  69</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> jump_height <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">25</span><span class="k2">)</span>
<span class="number">  70</span>    <span class="k2">{</span>
<span class="number">  71</span>    rach_pos_y <span class="k3">=</span> rach_pos_y <span class="k3">-</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  72</span>    jump_height <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  73</span>    <span class="k2">}</span>
<span class="number">  74</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> jump_height <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">25</span><span class="k2">)</span>
<span class="number">  75</span>    <span class="k2">{</span>
<span class="number">  76</span>    rach_pos_y <span class="k3">=</span> rach_pos_y <span class="k3">-</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  77</span>    rach_pos_x<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  78</span>    jump_height <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  79</span>    <span class="k2">}</span>
<span class="number">  80</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> jump_height <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">25</span><span class="k2">)</span>
<span class="number">  81</span>    <span class="k2">{</span>
<span class="number">  82</span>    rach_pos_y <span class="k3">=</span> rach_pos_y <span class="k3">-</span> <span class="n">5</span><span class="k2">;</span>
<span class="number">  83</span>    rach_pos_x--<span class="k2">;</span>
<span class="number">  84</span>    jump_height <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="number">  85</span>    <span class="k2">}</span>
<span class="number">  86</span>    <span class="k1">if</span> <span class="k2">(</span>gravity <span class="k3">=</span><span class="k3">=</span> TRUE<span class="k2">)</span>
<span class="number">  87</span>    <span class="k2">{</span>
<span class="number">  88</span>    rach_pos_y <span class="k3">=</span> rach_pos_y <span class="k3">+</span> <span class="n">2</span><span class="k2">;</span>
<span class="number">  89</span>    <span class="k2">}</span>
<span class="number">  90</span>    speed_counter <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number">  91</span>
<span class="number">  92</span>  <span class="k2">}</span> <span class="c">// while(speed_counter)</span>
<span class="number">  93</span><span class="k2">}</span> <span class="c">// void Move_rachman</span>
<span class="number">  94</span><a href="http://www.allegro.cc/manual/END_OF_FUNCTION" target="_blank"><span class="a">END_OF_FUNCTION</span></a><span class="k2">(</span>Move_rachman<span class="k2">)</span><span class="k2">;</span>
<span class="number">  95</span>
<span class="number">  96</span><span class="k1">void</span> Anim_rachman<span class="k2">(</span><span class="k2">)</span>
<span class="number">  97</span><span class="k2">{</span>
<span class="number">  98</span>  <span class="k1">while</span> <span class="k2">(</span>speed_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span>
<span class="number">  99</span>  <span class="k2">{</span>
<span class="number"> 100</span>    
<span class="number"> 101</span>    frame_counter <span class="k3">+</span><span class="k3">+</span><span class="k2">;</span> <span class="c">// Increment our frame counter at the same speed of the speed counter</span>
<span class="number"> 102</span>    <span class="k1">if</span><span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">80</span><span class="k2">)</span> <span class="c">// resets the frames for animation</span>
<span class="number"> 103</span>    <span class="k2">{</span>
<span class="number"> 104</span>      frame_counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 105</span>    <span class="k2">}</span>
<span class="number"> 106</span><span class="c">// Display all animations for walking right</span>
<span class="number"> 107</span>    <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span><span class="c">//displayes animation for key right</span>
<span class="number"> 108</span>    <span class="k2">{</span>
<span class="number"> 109</span>      <span class="k1">if</span> <span class="k2">(</span>frame_counter <span class="k3">&lt;</span> <span class="n">10</span><span class="k2">)</span>
<span class="number"> 110</span>      <span class="k2">{</span>
<span class="number"> 111</span>        <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun0<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 112</span>      <span class="k2">}</span>
<span class="number"> 113</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">10</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> frame_counter <span class="k3">&lt;</span> <span class="n">20</span><span class="k2">)</span> 
<span class="number"> 114</span>      <span class="k2">{</span>
<span class="number"> 115</span>        <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun1<span class="k2">]</span>.dat , rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span><span class="c">//Draw the first frame</span>
<span class="number"> 116</span>      <span class="k2">}</span>
<span class="number"> 117</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">20</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> frame_counter <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 118</span>      <span class="k2">{</span>
<span class="number"> 119</span>        <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun2<span class="k2">]</span>.dat , rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span><span class="c">//Draw the second frame</span>
<span class="number"> 120</span>      <span class="k2">}</span>
<span class="number"> 121</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> frame_counter <span class="k3">&lt;</span> <span class="n">60</span><span class="k2">)</span>
<span class="number"> 122</span>      <span class="k2">{</span>
<span class="number"> 123</span>        <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun3<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span><span class="c">//Draw the third frame                        //to acheive better effect</span>
<span class="number"> 124</span>      <span class="k2">}</span>
<span class="number"> 125</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">60</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> frame_counter <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">80</span><span class="k2">)</span>
<span class="number"> 126</span>      <span class="k2">{</span>
<span class="number"> 127</span>        <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun2<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span> <span class="c">//Draw the second frame again</span>
<span class="number"> 128</span>      <span class="k2">}</span>
<span class="number"> 129</span>    last_key <span class="k3">=</span> <span class="n">1</span><span class="k2">;</span>
<span class="number"> 130</span>    <span class="k2">}</span>
<span class="number"> 131</span><span class="c">// Display all animations for walking left  </span>
<span class="number"> 132</span>    <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span><span class="c">//displayes animation for key left and flips the original frames so it looks like it's moving left</span>
<span class="number"> 133</span>    <span class="k2">{</span>
<span class="number"> 134</span>      <span class="k1">if</span> <span class="k2">(</span>frame_counter <span class="k3">&lt;</span> <span class="n">10</span><span class="k2">)</span>
<span class="number"> 135</span>      <span class="k2">{</span>
<span class="number"> 136</span>        <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun0<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 137</span>      <span class="k2">}</span>
<span class="number"> 138</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">10</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> frame_counter <span class="k3">&lt;</span> <span class="n">20</span><span class="k2">)</span> 
<span class="number"> 139</span>      <span class="k2">{</span>
<span class="number"> 140</span>        <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun1<span class="k2">]</span>.dat , rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span><span class="c">//Draw the first frame</span>
<span class="number"> 141</span>      <span class="k2">}</span>
<span class="number"> 142</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">20</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> frame_counter <span class="k3">&lt;</span> <span class="n">40</span><span class="k2">)</span>
<span class="number"> 143</span>      <span class="k2">{</span>
<span class="number"> 144</span>        <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun2<span class="k2">]</span>.dat , rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 145</span>      <span class="k2">}</span>
<span class="number"> 146</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">40</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> frame_counter <span class="k3">&lt;</span> <span class="n">60</span><span class="k2">)</span>
<span class="number"> 147</span>      <span class="k2">{</span>
<span class="number"> 148</span>        <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun3<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>                        <span class="c">//to acheive better effect</span>
<span class="number"> 149</span>      <span class="k2">}</span>
<span class="number"> 150</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>frame_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">60</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> frame_counter <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">80</span><span class="k2">)</span>
<span class="number"> 151</span>      <span class="k2">{</span>
<span class="number"> 152</span>        <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachrun2<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span> 
<span class="number"> 153</span>      <span class="k2">}</span>
<span class="number"> 154</span>    last_key <span class="k3">=</span> <span class="n">2</span><span class="k2">;</span>
<span class="number"> 155</span>    <span class="k2">}</span>
<span class="number"> 156</span><span class="c">// Display all animations for just standing there like an idiot</span>
<span class="number"> 157</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_RIGHT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_LEFT<span class="k2">]</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span> <span class="c">//displays animation if no key is pressed</span>
<span class="number"> 158</span>    <span class="k2">{</span>
<span class="number"> 159</span>      <span class="k1">if</span> <span class="k2">(</span>last_key <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 160</span>      <span class="k2">{</span>
<span class="number"> 161</span>      <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachstand<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 162</span>      <span class="k2">}</span>
<span class="number"> 163</span>      <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span>last_key <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 164</span>      <span class="k2">{</span>
<span class="number"> 165</span>      <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachstand<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 166</span>      <span class="k2">}</span>
<span class="number"> 167</span>      <span class="k1">else</span>
<span class="number"> 168</span>      <span class="k2">{</span>
<span class="number"> 169</span>      <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachstand<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 170</span>      <span class="k2">}</span>
<span class="number"> 171</span>    frame_counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> <span class="c">//keeps frame count to zero so no animations are mixed up</span>
<span class="number"> 172</span>    <span class="k2">}</span>
<span class="number"> 173</span><span class="c">// Displays jumping animations (still a little buggy)</span>
<span class="number"> 174</span>    <span class="k1">else</span> <span class="k1">if</span> <span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_SPACE<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 175</span>    <span class="k2">{</span>
<span class="number"> 176</span>      <span class="k1">if</span><span class="k2">(</span>last_key <span class="k3">=</span><span class="k3">=</span> <span class="n">2</span><span class="k2">)</span>
<span class="number"> 177</span>      <span class="k2">{</span>
<span class="number"> 178</span>        <a href="http://www.allegro.cc/manual/draw_sprite_h_flip" target="_blank"><span class="a">draw_sprite_h_flip</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachjump<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 179</span>      <span class="k2">}</span>
<span class="number"> 180</span>      <span class="k1">else</span> <span class="k1">if</span><span class="k2">(</span>last_key <span class="k3">=</span><span class="k3">=</span> <span class="n">1</span><span class="k2">)</span>
<span class="number"> 181</span>      <span class="k2">{</span>
<span class="number"> 182</span>        <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span>buffer, <span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span><span class="k2">)</span>rach<span class="k2">[</span>rachjump<span class="k2">]</span>.dat, rach_pos_x, rach_pos_y<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 183</span>      <span class="k2">}</span>
<span class="number"> 184</span>    frame_counter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 185</span>    <span class="k2">}</span>
<span class="number"> 186</span>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">(</span>buffer, rachman_box_left, rachman_box_top, rachman_box_right, rachman_box_top, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 187</span>      
<span class="number"> 188</span>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">(</span>buffer, rachman_box_left, rachman_box_bottom, rachman_box_right, rachman_box_bottom, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 189</span>      
<span class="number"> 190</span>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">(</span>buffer, rachman_box_left, rachman_box_top, rachman_box_left, rachman_box_bottom, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 191</span>      
<span class="number"> 192</span>    <a href="http://www.allegro.cc/manual/line" target="_blank"><span class="a">line</span></a><span class="k2">(</span>buffer, rachman_box_right, rachman_box_top, rachman_box_right, rachman_box_bottom, <a href="http://www.allegro.cc/manual/makecol" target="_blank"><span class="a">makecol</span></a><span class="k2">(</span><span class="n">255</span>,<span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 193</span>    <a href="http://www.allegro.cc/manual/draw_sprite" target="_blank"><span class="a">draw_sprite</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, buffer, <span class="n">0</span>,<span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//draws the buffer onto the screen</span>
<span class="number"> 194</span>    speed_counter <span class="k3">-</span><span class="k3">-</span><span class="k2">;</span>
<span class="number"> 195</span>
<span class="number"> 196</span>  <span class="k2">}</span> <span class="c">// while</span>
<span class="number"> 197</span><span class="k2">}</span> <span class="c">// void Anim_rachman</span>
<span class="number"> 198</span><a href="http://www.allegro.cc/manual/END_OF_FUNCTION" target="_blank"><span class="a">END_OF_FUNCTION</span></a><span class="k2">(</span>Anim_rachman<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 199</span>
<span class="number"> 200</span><span class="k1">void</span> Game_loop<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 201</span><span class="k2">{</span>
<span class="number"> 202</span>  Move_rachman<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 203</span>  Anim_rachman<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 204</span><span class="k2">}</span>
<span class="number"> 205</span><a href="http://www.allegro.cc/manual/END_OF_FUNCTION" target="_blank"><span class="a">END_OF_FUNCTION</span></a><span class="k2">(</span>Game_loop<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 206</span>
<span class="number"> 207</span><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span>
<span class="number"> 208</span><span class="k2">{</span>
<span class="number"> 209</span>  <a href="http://www.allegro.cc/manual/allegro_init" target="_blank"><span class="a">allegro_init</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//initializes allegro functions</span>
<span class="number"> 210</span>  <a href="http://www.allegro.cc/manual/install_keyboard" target="_blank"><span class="a">install_keyboard</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//installs keyboard keys</span>
<span class="number"> 211</span>  <a href="http://www.allegro.cc/manual/install_timer" target="_blank"><span class="a">install_timer</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//installs the timer duh</span>
<span class="number"> 212</span>  <a href="http://www.allegro.cc/manual/set_color_depth" target="_blank"><span class="a">set_color_depth</span></a><span class="k2">(</span><span class="n">16</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//sets color depth to 16 bit</span>
<span class="number"> 213</span>  <a href="http://www.allegro.cc/manual/set_gfx_mode" target="_blank"><span class="a">set_gfx_mode</span></a><span class="k2">(</span> GFX_AUTODETECT, <span class="n">256</span>, <span class="n">256</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//sets the graphics for the game</span>
<span class="number"> 214</span>  
<span class="number"> 215</span>  <span class="c">//timer functions</span>
<span class="number"> 216</span>  <a href="http://www.allegro.cc/manual/LOCK_VARIABLE" target="_blank"><span class="a">LOCK_VARIABLE</span></a><span class="k2">(</span>speed_counter<span class="k2">)</span><span class="k2">;</span> <span class="c">//Used to set the timer - which regulates the game's</span>
<span class="number"> 217</span>  <a href="http://www.allegro.cc/manual/LOCK_FUNCTION" target="_blank"><span class="a">LOCK_FUNCTION</span></a><span class="k2">(</span>increment_speed_counter<span class="k2">)</span><span class="k2">;</span><span class="c">//speed.</span>
<span class="number"> 218</span>  <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increment_speed_counter, BPS_TO_TIMER<span class="k2">(</span><span class="n">80</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//Set our BPS (similar to fps)</span>
<span class="number"> 219</span>
<span class="number"> 220</span>  mapbuff <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span> <span class="n">256</span>, <span class="n">256</span><span class="k2">)</span><span class="k2">;</span><span class="c">//bitmap to write the map too</span>
<span class="number"> 221</span>  buffer <span class="k3">=</span> <a href="http://www.allegro.cc/manual/create_bitmap" target="_blank"><span class="a">create_bitmap</span></a><span class="k2">(</span> <span class="n">256</span>, <span class="n">256</span><span class="k2">)</span><span class="k2">;</span><span class="c">//bitmap to write onto the screen (double buffering helps eliminate flickering of the screen)</span>
<span class="number"> 222</span>  dev <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"dev.dat"</span><span class="k2">)</span><span class="k2">;</span> <span class="c">//loading datafiles</span>
<span class="number"> 223</span>  rach <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a><span class="k2">(</span><span class="s">"rach.dat"</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 224</span>  platform <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bitmap" target="_blank"><span class="a">load_bitmap</span></a><span class="k2">(</span><span class="s">"platform.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 225</span>  
<span class="number"> 226</span>  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span>
<span class="number"> 227</span>  <span class="k2">{</span>
<span class="number"> 228</span>  Game_loop<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
<span class="number"> 229</span>  <span class="k2">}</span>
<span class="number"> 230</span>
<span class="number"> 231</span>  <span class="c">//cleanup functions</span>
<span class="number"> 232</span>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 233</span>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>mapbuff<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 234</span>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>platform<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 235</span>  <a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>rach<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 236</span>  <a href="http://www.allegro.cc/manual/unload_datafile" target="_blank"><span class="a">unload_datafile</span></a><span class="k2">(</span>dev<span class="k2">)</span><span class="k2">;</span>
<span class="number"> 237</span>
<span class="number"> 238</span><span class="k1">return</span> <span class="n">0</span><span class="k2">;</span>
<span class="number"> 239</span><span class="k2">}</span>
<span class="number"> 240</span><a href="http://www.allegro.cc/manual/END_OF_MAIN" target="_blank"><span class="a">END_OF_MAIN</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</div></div><p>
All I get is a blank window... just black... nothing more... I tried fiddling with it and eventually I&#039;ll get a character who runs and animates WAY too fast... this leads me to believe it&#039;s a problem with my timer... I&#039;m not entirely certain how to create a good timer... I&#039;ve been using this one that I found in a tutorial and it&#039;s worked until I re-wrote my code...<br />Any Ideas?<br />Suggestions for better timer functions?</p><p>EDIT:<br />Ok... I tried a few more things... and now I get a really slow character... just about all functionality is there though... hmm... why is it working better now though... I didn&#039;t really do much...?<br />I posted the updated code
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (relay01)</author>
		<pubDate>Wed, 26 Jul 2006 00:36:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Do a search on these forums for how to seperate your timing and logic functions. You are not doing it in the best way.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Wed, 26 Jul 2006 00:54:34 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why are you commenting out:</p><p><span class="source-code"><a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increment_speed_counter, BPS_TO_TIMER<span class="k2">(</span><span class="n">80</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Wed, 26 Jul 2006 01:19:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Why are you commenting out:</p><p>install_int_ex(increment_speed_counter, BPS_TO_TIMER(80));
</p></div></div><p>
that was an attempt to fix it... didn&#39;t work... forgot to uncomment it... but the problem still persists</p><p>EDIT:<br />Ok... well It&#39;s working now... I&#39;m not at all sure why but it is... But Phipps was right... Implementing 2 functions is bogging the time down so I have to find a better way to implement timing...</p><p>Suggestions?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (relay01)</author>
		<pubDate>Wed, 26 Jul 2006 01:39:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>where is the error checking for everything that can fail ?<br /><img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Wed, 26 Jul 2006 14:12:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What I do is only ever use 1 universal timer that controls the speed of the game loop. Everything else can be timed using that one timer. I think its better if I just show you. <i>This is only an example, don&#39;t try and compile it</i></p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="c">//Timer Initialize\function blah blah</span></td></tr><tr><td class="number">2</td><td><span class="c">// Everything else you wanna do before game loop</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="c">// Game Loop</span></td></tr><tr><td class="number">5</td><td><span class="k1">do</span></td></tr><tr><td class="number">6</td><td><span class="k2">{</span></td></tr><tr><td class="number">7</td><td>   <span class="k1">while</span> <span class="k2">(</span>speed_counter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td>   <span class="k2">{</span></td></tr><tr><td class="number">9</td><td>     <span class="c">// Logic</span></td></tr><tr><td class="number">10</td><td>       <span class="c">// Input</span></td></tr><tr><td class="number">11</td><td>       <span class="c">// GFX Routines (by this I mean update any co-ords of gfx being drawn to               </span></td></tr><tr><td class="number">12</td><td>       <span class="c">// screen not actually drawing. For instance a scrolling background may have</span></td></tr><tr><td class="number">13</td><td>       <span class="c">// to update its x,y etc...)</span></td></tr><tr><td class="number">14</td><td>       <span class="c">// Enemy AI</span></td></tr><tr><td class="number">15</td><td>     <span class="c">// End Logic</span></td></tr><tr><td class="number">16</td><td>     speed_counter--<span class="k2">;</span></td></tr><tr><td class="number">17</td><td>   <span class="k2">}</span></td></tr><tr><td class="number">18</td><td>   <span class="c">// Update Screen</span></td></tr><tr><td class="number">19</td><td>      <span class="c">// Clear buffer</span></td></tr><tr><td class="number">20</td><td>      <span class="c">// Draw to buffer (means draw everything)</span></td></tr><tr><td class="number">21</td><td>      <span class="c">// Draw buffer to screen</span></td></tr><tr><td class="number">22</td><td>   <span class="c">// End Update Screen</span></td></tr><tr><td class="number">23</td><td><span class="k2">}</span> <span class="k1">while</span><span class="k2">(</span><a href="http://www.allegro.cc/manual/key" target="_blank"><span class="a">key</span></a><span class="k2">[</span>KEY_ESC<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

Thats a very rough idea of how I go about things, I dont know if its right, I just find it easier. Keep in mind i used class&#39; and so forth for all objects and they each handle their own animation, AI. I have a game engine class that creates objects dynamically and just calls &quot;m_pObject-&gt;Handle();&quot; and it looks after itself. Of course I have to call each objects draw function into the GameEngines::Draw(); funtion also.</p><p>About using time within my objects though its pretty simple. Let us assume the timer is set to 60bps, so every time my game engine calls &quot;m_pObject-&gt;Handle();&quot; the class&#39; &quot;int m_FrameTimer++&#39;s&quot; if u get my meaning and resets at 60.<br />Then the class itself knows where its at as opposed to how long its got before the next draw. </p><p>I hope that helped, I really think I am bad at explaining things and went totally from the point <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /> I seem to know it in my head, I just never helped no one before.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tomoso)</author>
		<pubDate>Wed, 26 Jul 2006 18:19:40 +0000</pubDate>
	</item>
</rss>
