<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Can&#39;t get my buffer to work</title>
		<link>http://www.allegro.cc/forums/view/591672</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Thu, 07 Jun 2007 04:40:14 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><a href="http://rafb.net/p/vYtDlk13.html">http://rafb.net/p/vYtDlk13.html</a></p><p>I&#39;m trying to make a sword fighting game.  Most of it is commented out because I don&#39;t have the sprites for it and I want to know that the most basic parts work first.  For some reason, my sprites either aren&#39;t being grabbed off the sprite sheet or they&#39;re just not showing up on screen.  I get a white background after the title screen like I&#39;m supposed to but then the stick figure fighting stance that&#39;s supposed to display doesn&#39;t show up.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Fri, 01 Jun 2007 00:33:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>(Reposted here because rafb expires)
</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">// Andrew Banks</span></td></tr><tr><td class="number">2</td><td><span class="c">// started on 5/15/07</span></td></tr><tr><td class="number">3</td><td><span class="c">// Sword Play</span></td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">5</td><td> </td></tr><tr><td class="number">6</td><td><span class="p">#define BLACK makecol(0, 0, 0)</span></td></tr><tr><td class="number">7</td><td><span class="p">#define GREEN makecol(0, 255, 0)</span></td></tr><tr><td class="number">8</td><td><span class="p">#define WHITE makecol(255, 255, 255)</span></td></tr><tr><td class="number">9</td><td> </td></tr><tr><td class="number">10</td><td><span class="k1">int</span> frame1 <span class="k3">=</span> <span class="n">0</span>, frame2 <span class="k3">=</span> <span class="n">0</span>, frameCount <span class="k3">=</span> <span class="n">0</span>, frameDelay <span class="k3">=</span> <span class="n">50</span>, p1 <span class="k3">=</span> <span class="n">40</span>, p2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">40</span>, player, stamina1 <span class="k3">=</span> <span class="n">100</span>, stamina2 <span class="k3">=</span> <span class="n">100</span>, ticks <span class="k3">=</span> <span class="n">0</span>, staticy <span class="k3">=</span> <span class="n">460</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td> </td></tr><tr><td class="number">12</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp<span class="k2">;</span></td></tr><tr><td class="number">13</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span></td></tr><tr><td class="number">14</td><td><span class="k2">{</span></td></tr><tr><td class="number">15</td><td>  temp <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>width, height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td> </td></tr><tr><td class="number">17</td><td>  <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame % columns<span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  <span class="k1">int</span> y <span class="k3">=</span> starty <span class="k3">+</span> <span class="k2">(</span>frame <span class="k3">/</span> columns<span class="k2">)</span> <span class="k3">*</span> height<span class="k2">;</span></td></tr><tr><td class="number">19</td><td> </td></tr><tr><td class="number">20</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source, temp, x, y, <span class="n">0</span>, <span class="n">0</span>, width, height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td> </td></tr><tr><td class="number">22</td><td>  <span class="k1">return</span> temp<span class="k2">;</span></td></tr><tr><td class="number">23</td><td><span class="k2">}</span></td></tr><tr><td class="number">24</td><td><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></td></tr><tr><td class="number">25</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>SwordPlayTitle<span class="k2">;</span></td></tr><tr><td class="number">26</td><td><span class="c">// sprite arrays end in s (for sprite) to differentiate from functions</span></td></tr><tr><td class="number">27</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>fightStances<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td><span class="c">/*BITMAP *attackHeads[10];</span></td></tr><tr><td class="number">29</td><td><span class="c">BITMAP *attackHands[10];</span></td></tr><tr><td class="number">30</td><td><span class="c">BITMAP *attackFoots[10];</span></td></tr><tr><td class="number">31</td><td><span class="c">BITMAP *defendHeads[1];</span></td></tr><tr><td class="number">32</td><td><span class="c">BITMAP *defendHands[1];</span></td></tr><tr><td class="number">33</td><td><span class="c">BITMAP *defendFoots[1];</span></td></tr><tr><td class="number">34</td><td><span class="c">BITMAP *runForwards[3];</span></td></tr><tr><td class="number">35</td><td><span class="c">BITMAP *runBackwards[3];</span></td></tr><tr><td class="number">36</td><td><span class="c">BITMAP *pushs[4];</span></td></tr><tr><td class="number">37</td><td><span class="c">BITMAP *powerStruggles[1];*/</span></td></tr><tr><td class="number">38</td><td> </td></tr><tr><td class="number">39</td><td><span class="k1">void</span> ticksFunction<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// counts time between frames</span></td></tr><tr><td class="number">40</td><td><span class="c">/*void attackHead(int player); // 10 frames</span></td></tr><tr><td class="number">41</td><td><span class="c">void attackHand(int player); // 10 frames</span></td></tr><tr><td class="number">42</td><td><span class="c">void attackFoot(int player); // 10 frames</span></td></tr><tr><td class="number">43</td><td><span class="c">void defendHead(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">44</td><td><span class="c">void defendHand(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">45</td><td><span class="c">void defendFoot(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">46</td><td><span class="c">void runForward(int player); // 2 frames played forward then backward, then next two frames (same thing)</span></td></tr><tr><td class="number">47</td><td><span class="c">void runBackward(int player); // 2 frames played forward then backward, then next two frames (same thing)</span></td></tr><tr><td class="number">48</td><td><span class="c">void push(int player); // 5 frames: one player stumbles backward, other stays in fightStance</span></td></tr><tr><td class="number">49</td><td><span class="c">void powerStruggle(void); // both players go through same two frames, then loser is pushed</span></td></tr><tr><td class="number">50</td><td><span class="c">*/</span></td></tr><tr><td class="number">51</td><td><span class="k1">void</span> stamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// displays players' stamina bars</span></td></tr><tr><td class="number">52</td><td><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// slightly regenerates stamina every second</span></td></tr><tr><td class="number">53</td><td><span class="c">//void decreaseStamina(void); // decreases player's stamina when an attack is blocked</span></td></tr><tr><td class="number">54</td><td> </td></tr><tr><td class="number">55</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">56</td><td><span class="k2">{</span></td></tr><tr><td class="number">57</td><td>  <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></td></tr><tr><td class="number">58</td><td>  <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></td></tr><tr><td class="number">59</td><td>  <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></td></tr><tr><td class="number">60</td><td>  <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">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>  <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_WINDOWED, <span class="n">640</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>  <span class="c">//buffer = create_bitmap(SCREEN_W, SCREEN_H);</span></td></tr><tr><td class="number">63</td><td>  SwordPlayTitle <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">"SwordPlayTitle.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td> </td></tr><tr><td class="number">65</td><td>  <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_SPACE<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">66</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">67</td><td>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, SwordPlayTitle-&gt;w, SwordPlayTitle-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>    <a href="http://www.allegro.cc/manual/textprintf_centre_ex" target="_blank"><span class="a">textprintf_centre_ex</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span>, <span class="n">460</span>, <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">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Press Space Bar to Continue..."</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">70</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>SwordPlayTitle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td> </td></tr><tr><td class="number">72</td><td>  <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">50</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td> </td></tr><tr><td class="number">74</td><td>  <span class="c">// loads frames for the fighting stance animation</span></td></tr><tr><td class="number">75</td><td>  temp <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">"FightStanceSpriteSheet.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">76</td><td>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">77</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">78</td><td>    fightStances<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp, <span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">1</span>, x<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">79</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">80</td><td> </td></tr><tr><td class="number">81</td><td>  <span class="c">/*// loads frames for the attack head animation</span></td></tr><tr><td class="number">82</td><td><span class="c">  temp = load_bitmap("attackHeadSheet.bmp", NULL);</span></td></tr><tr><td class="number">83</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">84</td><td><span class="c">  {</span></td></tr><tr><td class="number">85</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">86</td><td><span class="c">  }</span></td></tr><tr><td class="number">87</td><td><span class="c"> </span></td></tr><tr><td class="number">88</td><td><span class="c">  // loads frames for the attack hand animation</span></td></tr><tr><td class="number">89</td><td><span class="c">  temp = load_bitmap("attackHandSheet.bmp", NULL);</span></td></tr><tr><td class="number">90</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">91</td><td><span class="c">  {</span></td></tr><tr><td class="number">92</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">93</td><td><span class="c">  }</span></td></tr><tr><td class="number">94</td><td><span class="c"> </span></td></tr><tr><td class="number">95</td><td><span class="c">  // loads frames for the attack foot animation</span></td></tr><tr><td class="number">96</td><td><span class="c">  temp = load_bitmap("attackFootSheet.bmp", NULL);</span></td></tr><tr><td class="number">97</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">98</td><td><span class="c">  {</span></td></tr><tr><td class="number">99</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">100</td><td><span class="c">  }</span></td></tr><tr><td class="number">101</td><td><span class="c"> </span></td></tr><tr><td class="number">102</td><td><span class="c">  // loads frames for the defend head animation</span></td></tr><tr><td class="number">103</td><td><span class="c">  temp = load_bitmap("defendHeadSheet.bmp", NULL);</span></td></tr><tr><td class="number">104</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">105</td><td><span class="c">  {</span></td></tr><tr><td class="number">106</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">107</td><td><span class="c">  }</span></td></tr><tr><td class="number">108</td><td><span class="c"> </span></td></tr><tr><td class="number">109</td><td><span class="c">  // loads frames for the defend hand animation</span></td></tr><tr><td class="number">110</td><td><span class="c">  temp = load_bitmap("defendHandSheet.bmp", NULL);</span></td></tr><tr><td class="number">111</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">112</td><td><span class="c">  {</span></td></tr><tr><td class="number">113</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">114</td><td><span class="c">  }</span></td></tr><tr><td class="number">115</td><td><span class="c"> </span></td></tr><tr><td class="number">116</td><td><span class="c">  // loads frames for the defend foot animation</span></td></tr><tr><td class="number">117</td><td><span class="c">  temp = load_bitmap("defendFootSheet.bmp", NULL);</span></td></tr><tr><td class="number">118</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">119</td><td><span class="c">  {</span></td></tr><tr><td class="number">120</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">121</td><td><span class="c">  }</span></td></tr><tr><td class="number">122</td><td><span class="c"> </span></td></tr><tr><td class="number">123</td><td><span class="c">  // loads frames for the run forward animation</span></td></tr><tr><td class="number">124</td><td><span class="c">  temp = load_bitmap("runForwardSheet.bmp", NULL);</span></td></tr><tr><td class="number">125</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">126</td><td><span class="c">  {</span></td></tr><tr><td class="number">127</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">128</td><td><span class="c">  }</span></td></tr><tr><td class="number">129</td><td><span class="c"> </span></td></tr><tr><td class="number">130</td><td><span class="c">  // loads frames for the run backward animation</span></td></tr><tr><td class="number">131</td><td><span class="c">  temp = load_bitmap("runBackwardSheet.bmp", NULL);</span></td></tr><tr><td class="number">132</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">133</td><td><span class="c">  {</span></td></tr><tr><td class="number">134</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">135</td><td><span class="c">  }</span></td></tr><tr><td class="number">136</td><td><span class="c"> </span></td></tr><tr><td class="number">137</td><td><span class="c">  // loads frames for the push animation</span></td></tr><tr><td class="number">138</td><td><span class="c">  temp = load_bitmap("pushSheet.bmp", NULL);</span></td></tr><tr><td class="number">139</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">140</td><td><span class="c">  {</span></td></tr><tr><td class="number">141</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">142</td><td><span class="c">  }</span></td></tr><tr><td class="number">143</td><td><span class="c"> </span></td></tr><tr><td class="number">144</td><td><span class="c">  // loads frames for the power struggle animation</span></td></tr><tr><td class="number">145</td><td><span class="c">  temp = load_bitmap("powerStruggleSheet.bmp", NULL);</span></td></tr><tr><td class="number">146</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">147</td><td><span class="c">  {</span></td></tr><tr><td class="number">148</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">149</td><td><span class="c">  }*/</span></td></tr><tr><td class="number">150</td><td> </td></tr><tr><td class="number">151</td><td>  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><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">152</td><td>  <a href="http://www.allegro.cc/manual/install_int" target="_blank"><span class="a">install_int</span></a><span class="k2">(</span>increaseStamina, <span class="n">1000</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">153</td><td>  <a href="http://www.allegro.cc/manual/install_int" target="_blank"><span class="a">install_int</span></a><span class="k2">(</span>ticksFunction, frameDelay<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">154</td><td> </td></tr><tr><td class="number">155</td><td>  <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></td></tr><tr><td class="number">156</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">157</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, WHITE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">158</td><td>    <span class="c">/*// attack commands for player 1</span></td></tr><tr><td class="number">159</td><td><span class="c">    if(key[KEY_W] &amp;&amp; key[KEY_SPACE])</span></td></tr><tr><td class="number">160</td><td><span class="c">      attackHead(1);</span></td></tr><tr><td class="number">161</td><td><span class="c">    else if(key[KEY_SPACE])</span></td></tr><tr><td class="number">162</td><td><span class="c">      attackHand(1);</span></td></tr><tr><td class="number">163</td><td><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_SPACE])</span></td></tr><tr><td class="number">164</td><td><span class="c">      attackFoot(1);</span></td></tr><tr><td class="number">165</td><td><span class="c"> </span></td></tr><tr><td class="number">166</td><td><span class="c">    // defend commands for player 1</span></td></tr><tr><td class="number">167</td><td><span class="c">    else if(key[KEY_W] &amp;&amp; key[KEY_LSHIFT])</span></td></tr><tr><td class="number">168</td><td><span class="c">      defendHead(1);</span></td></tr><tr><td class="number">169</td><td><span class="c">    else if(key[KEY_LSHIFT])</span></td></tr><tr><td class="number">170</td><td><span class="c">      defendHand(1);</span></td></tr><tr><td class="number">171</td><td><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_LSHIFT])</span></td></tr><tr><td class="number">172</td><td><span class="c">      defendFoot(1);</span></td></tr><tr><td class="number">173</td><td><span class="c">    else*/</span></td></tr><tr><td class="number">174</td><td>    <span class="c">//{</span></td></tr><tr><td class="number">175</td><td>      <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>fightStances<span class="k2">[</span>frame1<span class="k2">]</span>, buffer, p1, staticy, p1, staticy, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>w, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">176</td><td>      frame1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">177</td><td>      <span class="k1">if</span><span class="k2">(</span>frame1 <span class="k3">&gt;</span> <span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">178</td><td>        frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">179</td><td>    <span class="c">//}</span></td></tr><tr><td class="number">180</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">181</td><td>  <a href="http://www.allegro.cc/manual/remove_int" target="_blank"><span class="a">remove_int</span></a><span class="k2">(</span>increaseStamina<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">182</td><td> </td></tr><tr><td class="number">183</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">184</td><td><span class="k2">}</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></td></tr><tr><td class="number">185</td><td> </td></tr><tr><td class="number">186</td><td><span class="k1">void</span> ticksFunction<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">187</td><td><span class="k2">{</span></td></tr><tr><td class="number">188</td><td>  ticks<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">189</td><td> </td></tr><tr><td class="number">190</td><td>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">=</span><span class="k3">=</span> frameDelay<span class="k2">)</span></td></tr><tr><td class="number">191</td><td>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">192</td><td><span class="k2">}</span></td></tr><tr><td class="number">193</td><td> </td></tr><tr><td class="number">194</td><td><span class="c">/*void fightStance(int player)</span></td></tr><tr><td class="number">195</td><td><span class="c">{</span></td></tr><tr><td class="number">196</td><td><span class="c">  int frame1 = 0, frame2 = 0;</span></td></tr><tr><td class="number">197</td><td><span class="c"> </span></td></tr><tr><td class="number">198</td><td><span class="c">  if(player == 1 &amp;&amp; ticks == 0)</span></td></tr><tr><td class="number">199</td><td><span class="c">  {</span></td></tr><tr><td class="number">200</td><td><span class="c">    blit(fightStances[frame1], screen, p1, staticy, p1, staticy, fightStances[frame1]-&gt;w, fightStances[frame1]-&gt;h);</span></td></tr><tr><td class="number">201</td><td><span class="c">    frame1++;</span></td></tr><tr><td class="number">202</td><td><span class="c">    if(frame1 &gt; 4)</span></td></tr><tr><td class="number">203</td><td><span class="c">      frame1 = 0;</span></td></tr><tr><td class="number">204</td><td><span class="c">  }</span></td></tr><tr><td class="number">205</td><td><span class="c">}*/</span></td></tr><tr><td class="number">206</td><td> </td></tr><tr><td class="number">207</td><td><span class="k1">void</span> stamina<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">208</td><td><span class="k2">{</span></td></tr><tr><td class="number">209</td><td>  <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">5</span>, <span class="n">5</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 1"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">210</td><td>  <a href="http://www.allegro.cc/manual/textprintf_right_ex" target="_blank"><span class="a">textprintf_right_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">5</span>, <span class="n">5</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 2"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">211</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <span class="n">5</span>, <span class="n">5</span>, <span class="n">5</span> <span class="k3">+</span> stamina1, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">212</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span> <span class="k3">+</span> stamina2, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">213</td><td><span class="k2">}</span></td></tr><tr><td class="number">214</td><td> </td></tr><tr><td class="number">215</td><td><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">216</td><td><span class="k2">{</span></td></tr><tr><td class="number">217</td><td>  stamina1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">218</td><td>  <span class="k1">if</span><span class="k2">(</span>stamina1 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">219</td><td>    stamina1 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">220</td><td>  stamina2<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">221</td><td>  <span class="k1">if</span><span class="k2">(</span>stamina2 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">222</td><td>    stamina2 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">223</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

This line is wrong:<span class="source-code"><a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>fightStances<span class="k2">[</span>frame1<span class="k2">]</span>, buffer, p1, staticy, p1, staticy, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>w, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>h<span class="k2">)</span><span class="k2">;</span></span><br />It should be:<span class="source-code"><a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>fightStances<span class="k2">[</span>frame1<span class="k2">]</span>, buffer, <span class="n">0</span>, <span class="n">0</span>, p1, staticy, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>w, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>h<span class="k2">)</span><span class="k2">;</span></span></p><p>Also, instead of doing this to display your title screen, which uses 100% CPU:</p><div class="source-code snippet"><div class="inner"><pre>  <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_SPACE<span class="k2">]</span><span class="k2">)</span>
  <span class="k2">{</span>
    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, SwordPlayTitle-&gt;w, SwordPlayTitle-&gt;h<span class="k2">)</span><span class="k2">;</span>
    <a href="http://www.allegro.cc/manual/textprintf_centre_ex" target="_blank"><span class="a">textprintf_centre_ex</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span>, <span class="n">460</span>, <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">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Press Space Bar to Continue..."</span><span class="k2">)</span><span class="k2">;</span>
  <span class="k2">}</span>
  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>SwordPlayTitle<span class="k2">)</span><span class="k2">;</span>
 
  <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">50</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
Do this instead:</p><div class="source-code snippet"><div class="inner"><pre><a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, SwordPlayTitle-&gt;w, SwordPlayTitle-&gt;h<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/textprintf_centre_ex" target="_blank"><span class="a">textprintf_centre_ex</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span>, <span class="n">460</span>, <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">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Press A Key to Continue..."</span><span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>SwordPlayTitle<span class="k2">)</span><span class="k2">;</span>
<a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 01 Jun 2007 01:00:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Could you explain why there should be zeroes there?</p><p>Why is it that my original way uses 100% CPU, and what other tricks could you tell me to stop me from running into similar problems or poor practice down the road?</p><p>How do you post your code on this forum like that?  Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Fri, 01 Jun 2007 08:20:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Could you explain why there should be zeroes there?
</p></div></div><p>Those are the &quot;source x&quot; and &quot;source y&quot; points of the bitmap. If you have your sprite image and you set them to 32, 32, the first 32 pixels on the top and left will be skipped, because you said to start copying from the pixel at 32, 32.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Why is it that my original way uses 100% CPU
</p></div></div><p>Well, if you read it, he code sees if escape is pressed, draws the image to the screen, draws the text to the screen, sees if escape is pressed, draws the image to the screen... It&#39;s always doing something. My way draws the image to the screen, draws the text to the screen, then waits for a key to be pressed.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
what other tricks could you tell me to stop me from running into similar problems or poor practice down the road?
</p></div></div><p>Just ask questions on the forums about what you aren&#39;t sure about.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
How do you post your code on this forum like that? Thanks.
</p></div></div><p><a href="http://www.allegro.cc/mockup.html">This link</a> is the &quot;Help&quot; button above the post reply box.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 01 Jun 2007 17:23:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><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">// Andrew Banks</span></td></tr><tr><td class="number">2</td><td><span class="c">// started on 5/15/07</span></td></tr><tr><td class="number">3</td><td><span class="c">// Sword Play</span></td></tr><tr><td class="number">4</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td><span class="p">#define BLACK makecol(0, 0, 0)</span></td></tr><tr><td class="number">7</td><td><span class="p">#define GREEN makecol(0, 255, 0)</span></td></tr><tr><td class="number">8</td><td><span class="p">#define WHITE makecol(255, 255, 255)</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="k1">int</span> frame1 <span class="k3">=</span> <span class="n">0</span>, frame2 <span class="k3">=</span> <span class="n">0</span>, frameCount <span class="k3">=</span> <span class="n">0</span>, frameDelay <span class="k3">=</span> <span class="n">5</span>, p1 <span class="k3">=</span> <span class="n">40</span>, p2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">40</span>, player, stamina1 <span class="k3">=</span> <span class="n">100</span>, stamina2 <span class="k3">=</span> <span class="n">100</span>, ticks <span class="k3">=</span> <span class="n">0</span>, staticy <span class="k3">=</span> <span class="n">200</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp<span class="k2">;</span></td></tr><tr><td class="number">13</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span></td></tr><tr><td class="number">14</td><td><span class="k2">{</span></td></tr><tr><td class="number">15</td><td>  temp <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>width, height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>  <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame % columns<span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  <span class="k1">int</span> y <span class="k3">=</span> starty <span class="k3">+</span> <span class="k2">(</span>frame <span class="k3">/</span> columns<span class="k2">)</span> <span class="k3">*</span> height<span class="k2">;</span></td></tr><tr><td class="number">19</td><td>&#160;</td></tr><tr><td class="number">20</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source, temp, x, y, <span class="n">0</span>, <span class="n">0</span>, width, height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td>  <span class="k1">return</span> temp<span class="k2">;</span></td></tr><tr><td class="number">23</td><td><span class="k2">}</span></td></tr><tr><td class="number">24</td><td><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></td></tr><tr><td class="number">25</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>SwordPlayTitle<span class="k2">;</span></td></tr><tr><td class="number">26</td><td><span class="c">// sprite arrays end in s (for sprite) to differentiate from functions</span></td></tr><tr><td class="number">27</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>fightStances<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td><span class="c">/*BITMAP *attackHeads[10];</span></td></tr><tr><td class="number">29</td><td><span class="c">BITMAP *attackHands[10];</span></td></tr><tr><td class="number">30</td><td><span class="c">BITMAP *attackFoots[10];</span></td></tr><tr><td class="number">31</td><td><span class="c">BITMAP *defendHeads[1];</span></td></tr><tr><td class="number">32</td><td><span class="c">BITMAP *defendHands[1];</span></td></tr><tr><td class="number">33</td><td><span class="c">BITMAP *defendFoots[1];</span></td></tr><tr><td class="number">34</td><td><span class="c">BITMAP *runForwards[3];</span></td></tr><tr><td class="number">35</td><td><span class="c">BITMAP *runBackwards[3];</span></td></tr><tr><td class="number">36</td><td><span class="c">BITMAP *pushs[4];</span></td></tr><tr><td class="number">37</td><td><span class="c">BITMAP *powerStruggles[1];*/</span></td></tr><tr><td class="number">38</td><td>&#160;</td></tr><tr><td class="number">39</td><td><span class="k1">void</span> ticksFunction<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// counts time between frames</span></td></tr><tr><td class="number">40</td><td><span class="c">/*void attackHead(int player); // 10 frames</span></td></tr><tr><td class="number">41</td><td><span class="c">void attackHand(int player); // 10 frames</span></td></tr><tr><td class="number">42</td><td><span class="c">void attackFoot(int player); // 10 frames</span></td></tr><tr><td class="number">43</td><td><span class="c">void defendHead(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">44</td><td><span class="c">void defendHand(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">45</td><td><span class="c">void defendFoot(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">46</td><td><span class="c">void runForward(int player); // 2 frames played forward then backward, then next two frames (same thing)</span></td></tr><tr><td class="number">47</td><td><span class="c">void runBackward(int player); // 2 frames played forward then backward, then next two frames (same thing)</span></td></tr><tr><td class="number">48</td><td><span class="c">void push(int player); // 5 frames: one player stumbles backward, other stays in fightStance</span></td></tr><tr><td class="number">49</td><td><span class="c">void powerStruggle(void); // both players go through same two frames, then loser is pushed</span></td></tr><tr><td class="number">50</td><td><span class="c">*/</span></td></tr><tr><td class="number">51</td><td><span class="k1">void</span> stamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// displays players' stamina bars</span></td></tr><tr><td class="number">52</td><td><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// slightly regenerates stamina every second</span></td></tr><tr><td class="number">53</td><td><span class="c">//void decreaseStamina(void); // decreases player's stamina when an attack is blocked</span></td></tr><tr><td class="number">54</td><td>&#160;</td></tr><tr><td class="number">55</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">56</td><td><span class="k2">{</span></td></tr><tr><td class="number">57</td><td>  <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></td></tr><tr><td class="number">58</td><td>  <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></td></tr><tr><td class="number">59</td><td>  <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></td></tr><tr><td class="number">60</td><td>  <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">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>  <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_WINDOWED, <span class="n">640</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">62</td><td>  <span class="c">//buffer = create_bitmap(SCREEN_W, SCREEN_H);</span></td></tr><tr><td class="number">63</td><td>  SwordPlayTitle <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">"SwordPlayTitle.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>&#160;</td></tr><tr><td class="number">65</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, SwordPlayTitle-&gt;w, SwordPlayTitle-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td>  <a href="http://www.allegro.cc/manual/textprintf_centre_ex" target="_blank"><span class="a">textprintf_centre_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span>, <span class="n">460</span>, <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">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Press Any Key to Continue..."</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">67</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>SwordPlayTitle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>  <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>&#160;</td></tr><tr><td class="number">70</td><td>  <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">50</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>&#160;</td></tr><tr><td class="number">72</td><td>  <span class="c">// loads frames for the fighting stance animation</span></td></tr><tr><td class="number">73</td><td>  temp <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">"FightStanceSpriteSheet.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">75</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">76</td><td>    fightStances<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp, <span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">1</span>, x<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">78</td><td>&#160;</td></tr><tr><td class="number">79</td><td>  <span class="c">/*// loads frames for the attack head animation</span></td></tr><tr><td class="number">80</td><td><span class="c">  temp = load_bitmap("attackHeadSheet.bmp", NULL);</span></td></tr><tr><td class="number">81</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">82</td><td><span class="c">  {</span></td></tr><tr><td class="number">83</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">84</td><td><span class="c">  }</span></td></tr><tr><td class="number">85</td><td><span class="c"></span></td></tr><tr><td class="number">86</td><td><span class="c">  // loads frames for the attack hand animation</span></td></tr><tr><td class="number">87</td><td><span class="c">  temp = load_bitmap("attackHandSheet.bmp", NULL);</span></td></tr><tr><td class="number">88</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">89</td><td><span class="c">  {</span></td></tr><tr><td class="number">90</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">91</td><td><span class="c">  }</span></td></tr><tr><td class="number">92</td><td><span class="c"></span></td></tr><tr><td class="number">93</td><td><span class="c">  // loads frames for the attack foot animation</span></td></tr><tr><td class="number">94</td><td><span class="c">  temp = load_bitmap("attackFootSheet.bmp", NULL);</span></td></tr><tr><td class="number">95</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">96</td><td><span class="c">  {</span></td></tr><tr><td class="number">97</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">98</td><td><span class="c">  }</span></td></tr><tr><td class="number">99</td><td><span class="c"></span></td></tr><tr><td class="number">100</td><td><span class="c">  // loads frames for the defend head animation</span></td></tr><tr><td class="number">101</td><td><span class="c">  temp = load_bitmap("defendHeadSheet.bmp", NULL);</span></td></tr><tr><td class="number">102</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">103</td><td><span class="c">  {</span></td></tr><tr><td class="number">104</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">105</td><td><span class="c">  }</span></td></tr><tr><td class="number">106</td><td><span class="c"></span></td></tr><tr><td class="number">107</td><td><span class="c">  // loads frames for the defend hand animation</span></td></tr><tr><td class="number">108</td><td><span class="c">  temp = load_bitmap("defendHandSheet.bmp", NULL);</span></td></tr><tr><td class="number">109</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">110</td><td><span class="c">  {</span></td></tr><tr><td class="number">111</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">112</td><td><span class="c">  }</span></td></tr><tr><td class="number">113</td><td><span class="c"></span></td></tr><tr><td class="number">114</td><td><span class="c">  // loads frames for the defend foot animation</span></td></tr><tr><td class="number">115</td><td><span class="c">  temp = load_bitmap("defendFootSheet.bmp", NULL);</span></td></tr><tr><td class="number">116</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">117</td><td><span class="c">  {</span></td></tr><tr><td class="number">118</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">119</td><td><span class="c">  }</span></td></tr><tr><td class="number">120</td><td><span class="c"></span></td></tr><tr><td class="number">121</td><td><span class="c">  // loads frames for the run forward animation</span></td></tr><tr><td class="number">122</td><td><span class="c">  temp = load_bitmap("runForwardSheet.bmp", NULL);</span></td></tr><tr><td class="number">123</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">124</td><td><span class="c">  {</span></td></tr><tr><td class="number">125</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">126</td><td><span class="c">  }</span></td></tr><tr><td class="number">127</td><td><span class="c"></span></td></tr><tr><td class="number">128</td><td><span class="c">  // loads frames for the run backward animation</span></td></tr><tr><td class="number">129</td><td><span class="c">  temp = load_bitmap("runBackwardSheet.bmp", NULL);</span></td></tr><tr><td class="number">130</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">131</td><td><span class="c">  {</span></td></tr><tr><td class="number">132</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">133</td><td><span class="c">  }</span></td></tr><tr><td class="number">134</td><td><span class="c"></span></td></tr><tr><td class="number">135</td><td><span class="c">  // loads frames for the push animation</span></td></tr><tr><td class="number">136</td><td><span class="c">  temp = load_bitmap("pushSheet.bmp", NULL);</span></td></tr><tr><td class="number">137</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">138</td><td><span class="c">  {</span></td></tr><tr><td class="number">139</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">140</td><td><span class="c">  }</span></td></tr><tr><td class="number">141</td><td><span class="c"></span></td></tr><tr><td class="number">142</td><td><span class="c">  // loads frames for the power struggle animation</span></td></tr><tr><td class="number">143</td><td><span class="c">  temp = load_bitmap("powerStruggleSheet.bmp", NULL);</span></td></tr><tr><td class="number">144</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">145</td><td><span class="c">  {</span></td></tr><tr><td class="number">146</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">147</td><td><span class="c">  }*/</span></td></tr><tr><td class="number">148</td><td>&#160;</td></tr><tr><td class="number">149</td><td>  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><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">150</td><td>  <a href="http://www.allegro.cc/manual/install_int" target="_blank"><span class="a">install_int</span></a><span class="k2">(</span>increaseStamina, <span class="n">1000</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">151</td><td>  <a href="http://www.allegro.cc/manual/install_int" target="_blank"><span class="a">install_int</span></a><span class="k2">(</span>ticksFunction, frameDelay<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">152</td><td>&#160;</td></tr><tr><td class="number">153</td><td>  <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></td></tr><tr><td class="number">154</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">155</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, WHITE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">156</td><td>    <span class="c">/*// attack commands for player 1</span></td></tr><tr><td class="number">157</td><td><span class="c">    if(key[KEY_W] &amp;&amp; key[KEY_SPACE])</span></td></tr><tr><td class="number">158</td><td><span class="c">      attackHead(1);</span></td></tr><tr><td class="number">159</td><td><span class="c">    else if(key[KEY_SPACE])</span></td></tr><tr><td class="number">160</td><td><span class="c">      attackHand(1);</span></td></tr><tr><td class="number">161</td><td><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_SPACE])</span></td></tr><tr><td class="number">162</td><td><span class="c">      attackFoot(1);</span></td></tr><tr><td class="number">163</td><td><span class="c"></span></td></tr><tr><td class="number">164</td><td><span class="c">    // defend commands for player 1</span></td></tr><tr><td class="number">165</td><td><span class="c">    else if(key[KEY_W] &amp;&amp; key[KEY_LSHIFT])</span></td></tr><tr><td class="number">166</td><td><span class="c">      defendHead(1);</span></td></tr><tr><td class="number">167</td><td><span class="c">    else if(key[KEY_LSHIFT])</span></td></tr><tr><td class="number">168</td><td><span class="c">      defendHand(1);</span></td></tr><tr><td class="number">169</td><td><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_LSHIFT])</span></td></tr><tr><td class="number">170</td><td><span class="c">      defendFoot(1);</span></td></tr><tr><td class="number">171</td><td><span class="c">    else*/</span></td></tr><tr><td class="number">172</td><td>    <span class="c">//{</span></td></tr><tr><td class="number">173</td><td>      <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>fightStances<span class="k2">[</span>frame1<span class="k2">]</span>, buffer, <span class="n">0</span>, <span class="n">0</span>, p1, staticy, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>w, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">174</td><td>      frame1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">175</td><td>      <span class="k1">if</span><span class="k2">(</span>frame1 <span class="k3">&gt;</span> <span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">176</td><td>        frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">177</td><td>    <span class="c">//}</span></td></tr><tr><td class="number">178</td><td>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, buffer-&gt;w, buffer-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">179</td><td>    <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">180</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">181</td><td>  <a href="http://www.allegro.cc/manual/remove_int" target="_blank"><span class="a">remove_int</span></a><span class="k2">(</span>increaseStamina<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">182</td><td>&#160;</td></tr><tr><td class="number">183</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">184</td><td><span class="k2">}</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></td></tr><tr><td class="number">185</td><td>&#160;</td></tr><tr><td class="number">186</td><td><span class="k1">void</span> ticksFunction<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">187</td><td><span class="k2">{</span></td></tr><tr><td class="number">188</td><td>  ticks<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">189</td><td>&#160;</td></tr><tr><td class="number">190</td><td>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">=</span><span class="k3">=</span> frameDelay<span class="k2">)</span></td></tr><tr><td class="number">191</td><td>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">192</td><td><span class="k2">}</span></td></tr><tr><td class="number">193</td><td>&#160;</td></tr><tr><td class="number">194</td><td><span class="c">/*void fightStance(int player)</span></td></tr><tr><td class="number">195</td><td><span class="c">{</span></td></tr><tr><td class="number">196</td><td><span class="c">  int frame1 = 0, frame2 = 0;</span></td></tr><tr><td class="number">197</td><td><span class="c"></span></td></tr><tr><td class="number">198</td><td><span class="c">  if(player == 1 &amp;&amp; ticks == 0)</span></td></tr><tr><td class="number">199</td><td><span class="c">  {</span></td></tr><tr><td class="number">200</td><td><span class="c">    blit(fightStances[frame1], screen, p1, staticy, p1, staticy, fightStances[frame1]-&gt;w, fightStances[frame1]-&gt;h);</span></td></tr><tr><td class="number">201</td><td><span class="c">    frame1++;</span></td></tr><tr><td class="number">202</td><td><span class="c">    if(frame1 &gt; 4)</span></td></tr><tr><td class="number">203</td><td><span class="c">      frame1 = 0;</span></td></tr><tr><td class="number">204</td><td><span class="c">  }</span></td></tr><tr><td class="number">205</td><td><span class="c">}*/</span></td></tr><tr><td class="number">206</td><td>&#160;</td></tr><tr><td class="number">207</td><td><span class="k1">void</span> stamina<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">208</td><td><span class="k2">{</span></td></tr><tr><td class="number">209</td><td>  <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">5</span>, <span class="n">5</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 1"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">210</td><td>  <a href="http://www.allegro.cc/manual/textprintf_right_ex" target="_blank"><span class="a">textprintf_right_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">5</span>, <span class="n">5</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 2"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">211</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <span class="n">5</span>, <span class="n">5</span>, <span class="n">5</span> <span class="k3">+</span> stamina1, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">212</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span> <span class="k3">+</span> stamina2, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">213</td><td><span class="k2">}</span></td></tr><tr><td class="number">214</td><td>&#160;</td></tr><tr><td class="number">215</td><td><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">216</td><td><span class="k2">{</span></td></tr><tr><td class="number">217</td><td>  stamina1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">218</td><td>  <span class="k1">if</span><span class="k2">(</span>stamina1 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">219</td><td>    stamina1 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">220</td><td>  stamina2<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">221</td><td>  <span class="k1">if</span><span class="k2">(</span>stamina2 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">222</td><td>    stamina2 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">223</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Thanks for the help so far, but I&#39;m still having issues.</p><p>My current problems are:</p><p>1. Stamina bars do not display at all<br />2. Only one frame of the stick figure displays, and it constantly has a black box written over top of it because it isn&#39;t reading in the other three frames of the animation.<br />3. Is there a way to specify what color is read as transparent?  In class, we did a sample program with a cat going across the screen and pink was the transparent color...I&#39;m not sure if that&#39;s the default or the only transparent color.</p><p>On another note, could someone take a look at my timer when used for my framerate?  I&#39;m trying to get it so that I can easily adjust and increase the flow of the animation.  Is there an easier/more efficient way or any tweaks that could be done to the code?</p><p>Here&#39;s my sprite sheet.  Keep in mind that in actuality, the sheet will be 240x960.<br /><span class="remote-thumbnail"><span class="json">{"name":"FightStanceSpriteSheet.jpg","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/8\/d834c597adf78e61db10b90a8d64b0e5.jpg","w":800,"h":200,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/d\/8\/d834c597adf78e61db10b90a8d64b0e5"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/d/8/d834c597adf78e61db10b90a8d64b0e5-240.jpg" alt="FightStanceSpriteSheet.jpg" width="240" height="60" /></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Fri, 01 Jun 2007 20:00:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
1. Stamina bars do not display at all
</p></div></div><p>Why would they? You never call the function that draws them.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
2. Only one frame of the stick figure displays, and it constantly has a black box written over top of it because it isn&#39;t reading in the other three frames of the animation.
</p></div></div><p>Sure. You call grabframe and pass 1 as the number of columns, but that image has 4.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
3. Is there a way to specify what color is read as transparent? In class, we did a sample program with a cat going across the screen and pink was the transparent color...I&#39;m not sure if that&#39;s the default or the only transparent color.
</p></div></div><p>Nope, sorry.</p><p>Also, this part is wrong:</p><div class="source-code snippet"><div class="inner"><pre>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span>
  <span class="k2">{</span>
    fightStances<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>temp, <span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">1</span>, x<span class="k2">)</span><span class="k2">;</span>
  <span class="k2">}</span>
</pre></div></div><p>fightStances is <tt>BITMAP* fightStances[3]</tt>. That means that you have 3 indexes to work with: 0, 1, and 2. But your loop writes to 0, 1, 2, and 3. That&#39;s one too many. Change the &quot;x &lt;= 3&quot; to &quot;x &lt; 3&quot;, so you will only write to 0, 1, and 2.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Fri, 01 Jun 2007 20:34:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Those were such obvious answers.  Thank you, I can&#39;t believe I missed them.  However, as far as the columns are concerned, I copied the code for the grabframe() function right out of a tutorial program, and they actually read columns from the other direction.  I&#39;m pretty sure I copied that right when I applied it to this program, though it may have been after I pasted it up on this board.  I&#39;ll post a newer version when my next inevitable problem turns up.  As for my timers, are they okay?  Or is there a better way to do it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Sat, 02 Jun 2007 00:19:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
However, as far as the columns are concerned, I copied the code for the grabframe() function right out of a tutorial program, and they actually read columns from the other direction.
</p></div></div><p>

The number of columns is the same, no matter what direction you look at them from.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Sat, 02 Jun 2007 01:01:16 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Unless you took them from top to bottom, in which case they are called &quot;rows&quot;. But the code shows that they run form left to right.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sat, 02 Jun 2007 01:03:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Okay, so my updated code:</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">// Sword Play</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="p">#define BLACK makecol(0, 0, 0)</span></td></tr><tr><td class="number">5</td><td><span class="p">#define GREEN makecol(0, 255, 0)</span></td></tr><tr><td class="number">6</td><td><span class="p">#define WHITE makecol(255, 255, 255)</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td><span class="k1">int</span> frame1 <span class="k3">=</span> <span class="n">0</span>, frame2 <span class="k3">=</span> <span class="n">0</span>, frameCount <span class="k3">=</span> <span class="n">0</span>, frameDelay <span class="k3">=</span> <span class="n">500</span>, p1 <span class="k3">=</span> <span class="n">40</span>, p2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">40</span>, player, stamina1 <span class="k3">=</span> <span class="n">100</span>, stamina2 <span class="k3">=</span> <span class="n">100</span>, ticks <span class="k3">=</span> <span class="n">0</span>, staticy <span class="k3">=</span> <span class="n">200</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span></td></tr><tr><td class="number">11</td><td><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp <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>width, height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>&#160;</td></tr><tr><td class="number">14</td><td>  <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame % columns<span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  <span class="k1">int</span> y <span class="k3">=</span> starty <span class="k3">+</span> <span class="k2">(</span>frame <span class="k3">/</span> columns<span class="k2">)</span> <span class="k3">*</span> height<span class="k2">;</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source, temp, x, y, <span class="n">0</span>, <span class="n">0</span>, width, height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td>  <span class="k1">return</span> temp<span class="k2">;</span></td></tr><tr><td class="number">20</td><td><span class="k2">}</span></td></tr><tr><td class="number">21</td><td><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></td></tr><tr><td class="number">22</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>pic<span class="k2">;</span></td></tr><tr><td class="number">23</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>SwordPlayTitle<span class="k2">;</span></td></tr><tr><td class="number">24</td><td><span class="c">// sprite arrays end in s (for sprite) to differentiate from functions</span></td></tr><tr><td class="number">25</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>fightStances<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td><span class="c">/*BITMAP *attackHeads[10];</span></td></tr><tr><td class="number">27</td><td><span class="c">BITMAP *attackHands[10];</span></td></tr><tr><td class="number">28</td><td><span class="c">BITMAP *attackFoots[10];</span></td></tr><tr><td class="number">29</td><td><span class="c">BITMAP *defendHeads[1];</span></td></tr><tr><td class="number">30</td><td><span class="c">BITMAP *defendHands[1];</span></td></tr><tr><td class="number">31</td><td><span class="c">BITMAP *defendFoots[1];</span></td></tr><tr><td class="number">32</td><td><span class="c">BITMAP *runForwards[3];</span></td></tr><tr><td class="number">33</td><td><span class="c">BITMAP *runBackwards[3];</span></td></tr><tr><td class="number">34</td><td><span class="c">BITMAP *pushs[4];</span></td></tr><tr><td class="number">35</td><td><span class="c">BITMAP *powerStruggles[1];*/</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td><span class="k1">void</span> ticksFunction<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// counts time between frames</span></td></tr><tr><td class="number">38</td><td><span class="c">/*void attackHead(int player); // 10 frames</span></td></tr><tr><td class="number">39</td><td><span class="c">void attackHand(int player); // 10 frames</span></td></tr><tr><td class="number">40</td><td><span class="c">void attackFoot(int player); // 10 frames</span></td></tr><tr><td class="number">41</td><td><span class="c">void defendHead(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">42</td><td><span class="c">void defendHand(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">43</td><td><span class="c">void defendFoot(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">44</td><td><span class="c">void runForward(int player); // 2 frames played forward then backward, then next two frames (same thing)</span></td></tr><tr><td class="number">45</td><td><span class="c">void runBackward(int player); // 2 frames played forward then backward, then next two frames (same thing)</span></td></tr><tr><td class="number">46</td><td><span class="c">void push(int player); // 5 frames: one player stumbles backward, other stays in fightStance</span></td></tr><tr><td class="number">47</td><td><span class="c">void powerStruggle(void); // both players go through same two frames, then loser is pushed</span></td></tr><tr><td class="number">48</td><td><span class="c">*/</span></td></tr><tr><td class="number">49</td><td><span class="k1">void</span> stamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// displays players' stamina bars</span></td></tr><tr><td class="number">50</td><td><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// slightly regenerates stamina every second</span></td></tr><tr><td class="number">51</td><td><span class="c">//void decreaseStamina(void); // decreases player's stamina when an attack is blocked</span></td></tr><tr><td class="number">52</td><td>&#160;</td></tr><tr><td class="number">53</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">54</td><td><span class="k2">{</span></td></tr><tr><td class="number">55</td><td>  <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></td></tr><tr><td class="number">56</td><td>  <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></td></tr><tr><td class="number">57</td><td>  <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></td></tr><tr><td class="number">58</td><td>  <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">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">59</td><td>  <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_WINDOWED, <span class="n">640</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">60</td><td>  SwordPlayTitle <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">"SwordPlayTitle.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">61</td><td>&#160;</td></tr><tr><td class="number">62</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, SwordPlayTitle-&gt;w, SwordPlayTitle-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">63</td><td>  <a href="http://www.allegro.cc/manual/textprintf_centre_ex" target="_blank"><span class="a">textprintf_centre_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span>, <span class="n">460</span>, <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">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Press Any Key to Continue..."</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>SwordPlayTitle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>  <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">66</td><td>&#160;</td></tr><tr><td class="number">67</td><td>  <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">50</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>&#160;</td></tr><tr><td class="number">69</td><td>  <span class="c">// loads frames for the fighting stance animation</span></td></tr><tr><td class="number">70</td><td>  pic <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">"FightStanceSpriteSheet.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">72</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">73</td><td>    fightStances<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>pic, <span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">4</span>, x<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">75</td><td>&#160;</td></tr><tr><td class="number">76</td><td>  <span class="c">/*// loads frames for the attack head animation</span></td></tr><tr><td class="number">77</td><td><span class="c">  temp = load_bitmap("attackHeadSheet.bmp", NULL);</span></td></tr><tr><td class="number">78</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">79</td><td><span class="c">  {</span></td></tr><tr><td class="number">80</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">81</td><td><span class="c">  }</span></td></tr><tr><td class="number">82</td><td><span class="c"></span></td></tr><tr><td class="number">83</td><td><span class="c">  // loads frames for the attack hand animation</span></td></tr><tr><td class="number">84</td><td><span class="c">  temp = load_bitmap("attackHandSheet.bmp", NULL);</span></td></tr><tr><td class="number">85</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">86</td><td><span class="c">  {</span></td></tr><tr><td class="number">87</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">88</td><td><span class="c">  }</span></td></tr><tr><td class="number">89</td><td><span class="c"></span></td></tr><tr><td class="number">90</td><td><span class="c">  // loads frames for the attack foot animation</span></td></tr><tr><td class="number">91</td><td><span class="c">  temp = load_bitmap("attackFootSheet.bmp", NULL);</span></td></tr><tr><td class="number">92</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">93</td><td><span class="c">  {</span></td></tr><tr><td class="number">94</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">95</td><td><span class="c">  }</span></td></tr><tr><td class="number">96</td><td><span class="c"></span></td></tr><tr><td class="number">97</td><td><span class="c">  // loads frames for the defend head animation</span></td></tr><tr><td class="number">98</td><td><span class="c">  temp = load_bitmap("defendHeadSheet.bmp", NULL);</span></td></tr><tr><td class="number">99</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">100</td><td><span class="c">  {</span></td></tr><tr><td class="number">101</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">102</td><td><span class="c">  }</span></td></tr><tr><td class="number">103</td><td><span class="c"></span></td></tr><tr><td class="number">104</td><td><span class="c">  // loads frames for the defend hand animation</span></td></tr><tr><td class="number">105</td><td><span class="c">  temp = load_bitmap("defendHandSheet.bmp", NULL);</span></td></tr><tr><td class="number">106</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">107</td><td><span class="c">  {</span></td></tr><tr><td class="number">108</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">109</td><td><span class="c">  }</span></td></tr><tr><td class="number">110</td><td><span class="c"></span></td></tr><tr><td class="number">111</td><td><span class="c">  // loads frames for the defend foot animation</span></td></tr><tr><td class="number">112</td><td><span class="c">  temp = load_bitmap("defendFootSheet.bmp", NULL);</span></td></tr><tr><td class="number">113</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">114</td><td><span class="c">  {</span></td></tr><tr><td class="number">115</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">116</td><td><span class="c">  }</span></td></tr><tr><td class="number">117</td><td><span class="c"></span></td></tr><tr><td class="number">118</td><td><span class="c">  // loads frames for the run forward animation</span></td></tr><tr><td class="number">119</td><td><span class="c">  temp = load_bitmap("runForwardSheet.bmp", NULL);</span></td></tr><tr><td class="number">120</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">121</td><td><span class="c">  {</span></td></tr><tr><td class="number">122</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">123</td><td><span class="c">  }</span></td></tr><tr><td class="number">124</td><td><span class="c"></span></td></tr><tr><td class="number">125</td><td><span class="c">  // loads frames for the run backward animation</span></td></tr><tr><td class="number">126</td><td><span class="c">  temp = load_bitmap("runBackwardSheet.bmp", NULL);</span></td></tr><tr><td class="number">127</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">128</td><td><span class="c">  {</span></td></tr><tr><td class="number">129</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">130</td><td><span class="c">  }</span></td></tr><tr><td class="number">131</td><td><span class="c"></span></td></tr><tr><td class="number">132</td><td><span class="c">  // loads frames for the push animation</span></td></tr><tr><td class="number">133</td><td><span class="c">  temp = load_bitmap("pushSheet.bmp", NULL);</span></td></tr><tr><td class="number">134</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">135</td><td><span class="c">  {</span></td></tr><tr><td class="number">136</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">137</td><td><span class="c">  }</span></td></tr><tr><td class="number">138</td><td><span class="c"></span></td></tr><tr><td class="number">139</td><td><span class="c">  // loads frames for the power struggle animation</span></td></tr><tr><td class="number">140</td><td><span class="c">  temp = load_bitmap("powerStruggleSheet.bmp", NULL);</span></td></tr><tr><td class="number">141</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">142</td><td><span class="c">  {</span></td></tr><tr><td class="number">143</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">144</td><td><span class="c">  }*/</span></td></tr><tr><td class="number">145</td><td>  </td></tr><tr><td class="number">146</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>pic<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">147</td><td>  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><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">148</td><td>  <a href="http://www.allegro.cc/manual/install_int" target="_blank"><span class="a">install_int</span></a><span class="k2">(</span>increaseStamina, <span class="n">1000</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">149</td><td>  <a href="http://www.allegro.cc/manual/install_int" target="_blank"><span class="a">install_int</span></a><span class="k2">(</span>ticksFunction, frameDelay<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">150</td><td>&#160;</td></tr><tr><td class="number">151</td><td>  <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></td></tr><tr><td class="number">152</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">153</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, WHITE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">154</td><td>    <span class="c">/*// attack commands for player 1</span></td></tr><tr><td class="number">155</td><td><span class="c">    if(key[KEY_W] &amp;&amp; key[KEY_SPACE])</span></td></tr><tr><td class="number">156</td><td><span class="c">      attackHead(1);</span></td></tr><tr><td class="number">157</td><td><span class="c">    else if(key[KEY_SPACE])</span></td></tr><tr><td class="number">158</td><td><span class="c">      attackHand(1);</span></td></tr><tr><td class="number">159</td><td><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_SPACE])</span></td></tr><tr><td class="number">160</td><td><span class="c">      attackFoot(1);</span></td></tr><tr><td class="number">161</td><td><span class="c"></span></td></tr><tr><td class="number">162</td><td><span class="c">    // defend commands for player 1</span></td></tr><tr><td class="number">163</td><td><span class="c">    else if(key[KEY_W] &amp;&amp; key[KEY_LSHIFT])</span></td></tr><tr><td class="number">164</td><td><span class="c">      defendHead(1);</span></td></tr><tr><td class="number">165</td><td><span class="c">    else if(key[KEY_LSHIFT])</span></td></tr><tr><td class="number">166</td><td><span class="c">      defendHand(1);</span></td></tr><tr><td class="number">167</td><td><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_LSHIFT])</span></td></tr><tr><td class="number">168</td><td><span class="c">      defendFoot(1);</span></td></tr><tr><td class="number">169</td><td><span class="c">    else*/</span></td></tr><tr><td class="number">170</td><td>    <span class="c">//{</span></td></tr><tr><td class="number">171</td><td>      <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>fightStances<span class="k2">[</span>frame1<span class="k2">]</span>, buffer, <span class="n">0</span>, <span class="n">0</span>, p1, staticy, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>w, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">172</td><td>      <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">173</td><td>        frame1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">174</td><td>      <span class="k1">if</span><span class="k2">(</span>frame1 <span class="k3">&gt;</span> <span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">175</td><td>        frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">176</td><td>    <span class="c">//}</span></td></tr><tr><td class="number">177</td><td>    stamina<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">178</td><td>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, buffer-&gt;w, buffer-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">179</td><td>    <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">180</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">181</td><td>  <a href="http://www.allegro.cc/manual/remove_int" target="_blank"><span class="a">remove_int</span></a><span class="k2">(</span>increaseStamina<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">182</td><td>&#160;</td></tr><tr><td class="number">183</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">184</td><td><span class="k2">}</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></td></tr><tr><td class="number">185</td><td>&#160;</td></tr><tr><td class="number">186</td><td><span class="k1">void</span> ticksFunction<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">187</td><td><span class="k2">{</span></td></tr><tr><td class="number">188</td><td>  ticks<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">189</td><td>&#160;</td></tr><tr><td class="number">190</td><td>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">=</span><span class="k3">=</span> frameDelay<span class="k2">)</span></td></tr><tr><td class="number">191</td><td>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">192</td><td><span class="k2">}</span></td></tr><tr><td class="number">193</td><td>&#160;</td></tr><tr><td class="number">194</td><td><span class="k1">void</span> stamina<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">195</td><td><span class="k2">{</span></td></tr><tr><td class="number">196</td><td>  <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">5</span>, <span class="n">15</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 1"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">197</td><td>  <a href="http://www.allegro.cc/manual/textprintf_right_ex" target="_blank"><span class="a">textprintf_right_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">5</span>, <span class="n">15</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 2"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">198</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <span class="n">5</span>, <span class="n">5</span>, <span class="n">5</span> <span class="k3">+</span> stamina1, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">199</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span> <span class="k3">+</span> stamina2, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">200</td><td><span class="k2">}</span></td></tr><tr><td class="number">201</td><td>&#160;</td></tr><tr><td class="number">202</td><td><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">203</td><td><span class="k2">{</span></td></tr><tr><td class="number">204</td><td>  stamina1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">205</td><td>  <span class="k1">if</span><span class="k2">(</span>stamina1 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">206</td><td>    stamina1 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">207</td><td>  stamina2<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">208</td><td>  <span class="k1">if</span><span class="k2">(</span>stamina2 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">209</td><td>    stamina2 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">210</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

My sprite animates, but depending on the speed, it will only run through for a few cycles.  Like I said before, I feel like I&#39;m going through that loop REALLY ineffieciently.  How can I make it easy to adjust the animation speed?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Mon, 04 Jun 2007 20:19:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, you should have your game loop looking something like this:</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="k1">int</span> currentFrame <span class="k3">=</span> <span class="n">0</span>, frameCounter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> frames<span class="k2">[</span><span class="n">3</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="c">// Logic function. Called 30 times per second. Returns true to continue</span></td></tr><tr><td class="number">5</td><td><span class="c">// playing the game, and false to quit it.</span></td></tr><tr><td class="number">6</td><td><span class="k1">bool</span> logic<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">7</td><td><span class="k2">{</span></td></tr><tr><td class="number">8</td><td>    <span class="c">// This function is called 30 times each second, so this variable goes</span></td></tr><tr><td class="number">9</td><td>    <span class="c">// up 30 times each second</span></td></tr><tr><td class="number">10</td><td>    <span class="k3">+</span><span class="k3">+</span>frameCounter<span class="k2">;</span></td></tr><tr><td class="number">11</td><td>    <span class="c">// If it's been around 10 / 30 of a second, go to the next animation</span></td></tr><tr><td class="number">12</td><td>    <span class="c">// frame a reset it</span></td></tr><tr><td class="number">13</td><td>    <span class="k1">if</span><span class="k2">(</span>frameCounter <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">10</span><span class="k2">)</span></td></tr><tr><td class="number">14</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>        frameCounter <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>        currentFrame<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>        <span class="k1">if</span><span class="k2">(</span>currentFrame <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span></td></tr><tr><td class="number">18</td><td>            currentFrame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">20</td><td>&#160;</td></tr><tr><td class="number">21</td><td>    <span class="c">// If the user is not pressing escape then return true to continue playing</span></td></tr><tr><td class="number">22</td><td>    <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_ESC<span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">23</td><td>        <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>    <span class="c">// Otherwise return false to quit</span></td></tr><tr><td class="number">25</td><td>    <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td><span class="k2">}</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td><span class="c">// This function is called to draw the game to the screen</span></td></tr><tr><td class="number">29</td><td><span class="k1">void</span> draw<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> to<span class="k2">)</span></td></tr><tr><td class="number">30</td><td><span class="k2">{</span></td></tr><tr><td class="number">31</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</span> sprite <span class="k3">=</span> frames<span class="k2">[</span>currentFrame<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">32</td><td>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>sprite, to, <span class="n">0</span>, <span class="n">0</span>, <span class="n">200</span>, <span class="n">200</span>, sprite-&gt;w, sprite-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td><span class="k2">}</span></td></tr><tr><td class="number">34</td><td>&#160;</td></tr><tr><td class="number">35</td><td><span class="k1">volatile</span> <span class="k1">int</span> ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">36</td><td><span class="k1">void</span> timer<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">37</td><td><span class="k2">{</span></td></tr><tr><td class="number">38</td><td>    ticks<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">39</td><td><span class="k2">}</span></td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">int</span> argc, <span class="k1">char</span><span class="k3">*</span> argv<span class="k2">[</span><span class="k2">]</span><span class="k2">)</span></td></tr><tr><td class="number">42</td><td><span class="k2">{</span></td></tr><tr><td class="number">43</td><td>    <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></td></tr><tr><td class="number">44</td><td>    <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></td></tr><tr><td class="number">45</td><td>    <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_WINDOWED, <span class="n">640</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>    <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></td></tr><tr><td class="number">47</td><td>    <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></td></tr><tr><td class="number">48</td><td>&#160;</td></tr><tr><td class="number">49</td><td>    <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a><span class="k3">*</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><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>&#160;</td></tr><tr><td class="number">51</td><td>    <span class="c">// This will call the timer function 30 times per second</span></td></tr><tr><td class="number">52</td><td>    <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>timer, BPS_TO_TIMER<span class="k2">(</span><span class="n">30</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">53</td><td>&#160;</td></tr><tr><td class="number">54</td><td>    <span class="k1">bool</span> quit <span class="k3">=</span> <span class="k1">false</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>    <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span>quit<span class="k2">)</span></td></tr><tr><td class="number">56</td><td>    <span class="k2">{</span></td></tr><tr><td class="number">57</td><td>        <span class="k1">while</span><span class="k2">(</span>ticks <span class="k3">&gt;</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">58</td><td>        <span class="k2">{</span></td></tr><tr><td class="number">59</td><td>            <span class="k3">-</span><span class="k3">-</span>ticks<span class="k2">;</span></td></tr><tr><td class="number">60</td><td>            <span class="c">// This will ensure the logic function is called 30 times per second</span></td></tr><tr><td class="number">61</td><td>            <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>logic<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">62</td><td>            <span class="k2">{</span>   <span class="c">// If the logic function decided it was time to quit, then do so.</span></td></tr><tr><td class="number">63</td><td>                quit <span class="k3">=</span> <span class="k1">true</span><span class="k2">;</span></td></tr><tr><td class="number">64</td><td>                <span class="k1">break</span><span class="k2">;</span></td></tr><tr><td class="number">65</td><td>            <span class="k2">}</span></td></tr><tr><td class="number">66</td><td>        <span class="k2">}</span></td></tr><tr><td class="number">67</td><td>        draw<span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">68</td><td>        <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, buffer-&gt;w, buffer-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>        <span class="c">// This will cause the CPU to go idle if logic + drawing takes less than</span></td></tr><tr><td class="number">70</td><td>        <span class="c">// 1 / 30 of a second</span></td></tr><tr><td class="number">71</td><td>        <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">=</span><span class="k3">=</span> <span class="n">0</span><span class="k2">)</span></td></tr><tr><td class="number">72</td><td>            <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">74</td><td>&#160;</td></tr><tr><td class="number">75</td><td>    <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></td></tr><tr><td class="number">76</td><td>    <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">77</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Mon, 04 Jun 2007 20:41:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre>        currentFrame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
        <span class="k1">if</span><span class="k2">(</span>currentFrame <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">)</span>
            currentFrame <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
</pre></div></div><p>
</p></div></div><p>

Why are you checking if currentFrame is greater than or equal to 3 when you&#39;ve just set it to 0?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Tue, 05 Jun 2007 04:01:10 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Whoops, fixed, thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Tue, 05 Jun 2007 06:17:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>CGames, I did like some of what I saw in your program, but there was a lot that seemed either unnecessary or I just didn&#39;t understand it.  Here&#39;s my updated program (issues listed in first comment lines):</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">// Sword Play</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="c">// Known issues:</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="c">// game still isn't anywhere near playable</span></td></tr><tr><td class="number">6</td><td><span class="c">// stick dude no longer moves</span></td></tr><tr><td class="number">7</td><td><span class="c">// pressing keys apparently bogs down the computer enough to slow the game down</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="p">#include &lt;allegro.h&gt;</span></td></tr><tr><td class="number">10</td><td>&#160;</td></tr><tr><td class="number">11</td><td><span class="p">#define BLACK makecol(0, 0, 0)</span></td></tr><tr><td class="number">12</td><td><span class="p">#define GREEN makecol(0, 255, 0)</span></td></tr><tr><td class="number">13</td><td><span class="p">#define WHITE makecol(255, 255, 255)</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td><span class="k1">volatile</span> <span class="k1">int</span> frame1 <span class="k3">=</span> <span class="n">0</span>, frame2 <span class="k3">=</span> <span class="n">0</span>, p1 <span class="k3">=</span> <span class="n">40</span>, p2 <span class="k3">=</span> <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">40</span>, player, stamina1 <span class="k3">=</span> <span class="n">100</span>, stamina2 <span class="k3">=</span> <span class="n">100</span>, ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td><span class="k1">const</span> <span class="k1">int</span> frameRate <span class="k3">=</span> <span class="n">15</span>, staticy <span class="k3">=</span> <span class="n">200</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>grabframe<span class="k2">(</span><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>source, <span class="k1">int</span> width, <span class="k1">int</span> height, <span class="k1">int</span> startx, <span class="k1">int</span> starty, <span class="k1">int</span> columns, <span class="k1">int</span> frame<span class="k2">)</span></td></tr><tr><td class="number">19</td><td><span class="k2">{</span></td></tr><tr><td class="number">20</td><td>  <a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>temp <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>width, height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td>  <span class="k1">int</span> x <span class="k3">=</span> startx <span class="k3">+</span> <span class="k2">(</span>frame % columns<span class="k2">)</span> <span class="k3">*</span> width<span class="k2">;</span></td></tr><tr><td class="number">23</td><td>  <span class="k1">int</span> y <span class="k3">=</span> starty <span class="k3">+</span> <span class="k2">(</span>frame <span class="k3">/</span> columns<span class="k2">)</span> <span class="k3">*</span> height<span class="k2">;</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>source, temp, x, y, <span class="n">0</span>, <span class="n">0</span>, width, height<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td>  <span class="k1">return</span> temp<span class="k2">;</span></td></tr><tr><td class="number">28</td><td><span class="k2">}</span></td></tr><tr><td class="number">29</td><td><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></td></tr><tr><td class="number">30</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>pic<span class="k2">;</span></td></tr><tr><td class="number">31</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>SwordPlayTitle<span class="k2">;</span></td></tr><tr><td class="number">32</td><td><span class="c">// sprite arrays end in s (for sprite) to differentiate from functions</span></td></tr><tr><td class="number">33</td><td><a href="http://www.allegro.cc/manual/BITMAP" target="_blank"><span class="a">BITMAP</span></a> <span class="k3">*</span>fightStances<span class="k2">[</span><span class="n">4</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td><span class="c">/*BITMAP *attackHeads[10];</span></td></tr><tr><td class="number">35</td><td><span class="c">BITMAP *attackHands[10];</span></td></tr><tr><td class="number">36</td><td><span class="c">BITMAP *attackFoots[10];</span></td></tr><tr><td class="number">37</td><td><span class="c">BITMAP *defendHeads[1];</span></td></tr><tr><td class="number">38</td><td><span class="c">BITMAP *defendHands[1];</span></td></tr><tr><td class="number">39</td><td><span class="c">BITMAP *defendFoots[1];</span></td></tr><tr><td class="number">40</td><td><span class="c">BITMAP *runForwards[3];</span></td></tr><tr><td class="number">41</td><td><span class="c">BITMAP *runBackwards[3];</span></td></tr><tr><td class="number">42</td><td><span class="c">BITMAP *pushs[4];</span></td></tr><tr><td class="number">43</td><td><span class="c">BITMAP *powerStruggles[1];*/</span></td></tr><tr><td class="number">44</td><td>&#160;</td></tr><tr><td class="number">45</td><td><span class="k1">void</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// used to count hundredths of a second</span></td></tr><tr><td class="number">46</td><td><span class="k1">void</span> frame1Function<span class="k2">(</span><span class="k1">int</span> maxframes<span class="k2">)</span><span class="k2">;</span> <span class="c">// controls animation of current action for player 1</span></td></tr><tr><td class="number">47</td><td>&#160;</td></tr><tr><td class="number">48</td><td><span class="c">/*void attackHead(int player); // 10 frames</span></td></tr><tr><td class="number">49</td><td><span class="c">void attackHand(int player); // 10 frames</span></td></tr><tr><td class="number">50</td><td><span class="c">void attackFoot(int player); // 10 frames</span></td></tr><tr><td class="number">51</td><td><span class="c">void defendHead(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">52</td><td><span class="c">void defendHand(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">53</td><td><span class="c">void defendFoot(int player); // 2 frames, last one is repeated</span></td></tr><tr><td class="number">54</td><td><span class="c">void runForward(int player); // 2 frames played forward then backward, then next two frames (same thing)</span></td></tr><tr><td class="number">55</td><td><span class="c">void runBackward(int player); // 2 frames played forward then backward, then next two frames (same thing)</span></td></tr><tr><td class="number">56</td><td><span class="c">void push(int player); // 5 frames: one player stumbles backward, other stays in fightStance</span></td></tr><tr><td class="number">57</td><td><span class="c">void powerStruggle(void); // both players go through same two frames, then loser is pushed</span></td></tr><tr><td class="number">58</td><td><span class="c">*/</span></td></tr><tr><td class="number">59</td><td><span class="k1">void</span> stamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// displays players' stamina bars</span></td></tr><tr><td class="number">60</td><td><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// slightly regenerates stamina every second</span></td></tr><tr><td class="number">61</td><td><span class="c">//void decreaseStamina(void); // decreases player's stamina when an attack is blocked</span></td></tr><tr><td class="number">62</td><td>&#160;</td></tr><tr><td class="number">63</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k1">void</span><span class="k2">)</span></td></tr><tr><td class="number">64</td><td><span class="k2">{</span></td></tr><tr><td class="number">65</td><td>  <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></td></tr><tr><td class="number">66</td><td>  <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></td></tr><tr><td class="number">67</td><td>  <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></td></tr><tr><td class="number">68</td><td>  <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">32</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">69</td><td>  <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_WINDOWED, <span class="n">640</span>, <span class="n">480</span>, <span class="n">0</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">70</td><td>  SwordPlayTitle <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">"SwordPlayTitle.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">71</td><td>&#160;</td></tr><tr><td class="number">72</td><td>  <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>SwordPlayTitle, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, SwordPlayTitle-&gt;w, SwordPlayTitle-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">73</td><td>  <a href="http://www.allegro.cc/manual/textprintf_centre_ex" target="_blank"><span class="a">textprintf_centre_ex</span></a><span class="k2">(</span><a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">/</span> <span class="n">2</span>, <span class="n">460</span>, <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">255</span>, <span class="n">255</span><span class="k2">)</span>, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Press Any Key to Continue..."</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">74</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>SwordPlayTitle<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">75</td><td>  <a href="http://www.allegro.cc/manual/readkey" target="_blank"><span class="a">readkey</span></a><span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">76</td><td>&#160;</td></tr><tr><td class="number">77</td><td>  <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">50</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">78</td><td>&#160;</td></tr><tr><td class="number">79</td><td>  <span class="c">// loads frames for the fighting stance animation</span></td></tr><tr><td class="number">80</td><td>  pic <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">"FightStanceSpriteSheet.bmp"</span>, NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">81</td><td>  <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span><span class="k3">=</span> <span class="n">3</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">82</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">83</td><td>    fightStances<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> grabframe<span class="k2">(</span>pic, <span class="n">240</span>, <span class="n">240</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">4</span>, x<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">84</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">85</td><td>&#160;</td></tr><tr><td class="number">86</td><td>  <span class="c">/*// loads frames for the attack head animation</span></td></tr><tr><td class="number">87</td><td><span class="c">  temp = load_bitmap("attackHeadSheet.bmp", NULL);</span></td></tr><tr><td class="number">88</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">89</td><td><span class="c">  {</span></td></tr><tr><td class="number">90</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">91</td><td><span class="c">  }</span></td></tr><tr><td class="number">92</td><td><span class="c"></span></td></tr><tr><td class="number">93</td><td><span class="c">  // loads frames for the attack hand animation</span></td></tr><tr><td class="number">94</td><td><span class="c">  temp = load_bitmap("attackHandSheet.bmp", NULL);</span></td></tr><tr><td class="number">95</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">96</td><td><span class="c">  {</span></td></tr><tr><td class="number">97</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">98</td><td><span class="c">  }</span></td></tr><tr><td class="number">99</td><td><span class="c"></span></td></tr><tr><td class="number">100</td><td><span class="c">  // loads frames for the attack foot animation</span></td></tr><tr><td class="number">101</td><td><span class="c">  temp = load_bitmap("attackFootSheet.bmp", NULL);</span></td></tr><tr><td class="number">102</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">103</td><td><span class="c">  {</span></td></tr><tr><td class="number">104</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">105</td><td><span class="c">  }</span></td></tr><tr><td class="number">106</td><td><span class="c"></span></td></tr><tr><td class="number">107</td><td><span class="c">  // loads frames for the defend head animation</span></td></tr><tr><td class="number">108</td><td><span class="c">  temp = load_bitmap("defendHeadSheet.bmp", NULL);</span></td></tr><tr><td class="number">109</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">110</td><td><span class="c">  {</span></td></tr><tr><td class="number">111</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">112</td><td><span class="c">  }</span></td></tr><tr><td class="number">113</td><td><span class="c"></span></td></tr><tr><td class="number">114</td><td><span class="c">  // loads frames for the defend hand animation</span></td></tr><tr><td class="number">115</td><td><span class="c">  temp = load_bitmap("defendHandSheet.bmp", NULL);</span></td></tr><tr><td class="number">116</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">117</td><td><span class="c">  {</span></td></tr><tr><td class="number">118</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">119</td><td><span class="c">  }</span></td></tr><tr><td class="number">120</td><td><span class="c"></span></td></tr><tr><td class="number">121</td><td><span class="c">  // loads frames for the defend foot animation</span></td></tr><tr><td class="number">122</td><td><span class="c">  temp = load_bitmap("defendFootSheet.bmp", NULL);</span></td></tr><tr><td class="number">123</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">124</td><td><span class="c">  {</span></td></tr><tr><td class="number">125</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">126</td><td><span class="c">  }</span></td></tr><tr><td class="number">127</td><td><span class="c"></span></td></tr><tr><td class="number">128</td><td><span class="c">  // loads frames for the run forward animation</span></td></tr><tr><td class="number">129</td><td><span class="c">  temp = load_bitmap("runForwardSheet.bmp", NULL);</span></td></tr><tr><td class="number">130</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">131</td><td><span class="c">  {</span></td></tr><tr><td class="number">132</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">133</td><td><span class="c">  }</span></td></tr><tr><td class="number">134</td><td><span class="c"></span></td></tr><tr><td class="number">135</td><td><span class="c">  // loads frames for the run backward animation</span></td></tr><tr><td class="number">136</td><td><span class="c">  temp = load_bitmap("runBackwardSheet.bmp", NULL);</span></td></tr><tr><td class="number">137</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">138</td><td><span class="c">  {</span></td></tr><tr><td class="number">139</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">140</td><td><span class="c">  }</span></td></tr><tr><td class="number">141</td><td><span class="c"></span></td></tr><tr><td class="number">142</td><td><span class="c">  // loads frames for the push animation</span></td></tr><tr><td class="number">143</td><td><span class="c">  temp = load_bitmap("pushSheet.bmp", NULL);</span></td></tr><tr><td class="number">144</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">145</td><td><span class="c">  {</span></td></tr><tr><td class="number">146</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">147</td><td><span class="c">  }</span></td></tr><tr><td class="number">148</td><td><span class="c"></span></td></tr><tr><td class="number">149</td><td><span class="c">  // loads frames for the power struggle animation</span></td></tr><tr><td class="number">150</td><td><span class="c">  temp = load_bitmap("powerStruggleSheet.bmp", NULL);</span></td></tr><tr><td class="number">151</td><td><span class="c">  for(int x = 0; x &lt;= 2; x++)</span></td></tr><tr><td class="number">152</td><td><span class="c">  {</span></td></tr><tr><td class="number">153</td><td><span class="c">    fightStances[x] = grabframe(240, 240, 0, 0, 1, x);</span></td></tr><tr><td class="number">154</td><td><span class="c">  }*/</span></td></tr><tr><td class="number">155</td><td>  </td></tr><tr><td class="number">156</td><td>  <a href="http://www.allegro.cc/manual/destroy_bitmap" target="_blank"><span class="a">destroy_bitmap</span></a><span class="k2">(</span>pic<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">157</td><td>  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><a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_H" target="_blank"><span class="a">SCREEN_H</span></a><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">158</td><td>  <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a>, BPS_TO_TIMER<span class="k2">(</span><span class="n">100</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// calls the timer function 100 times every second</span></td></tr><tr><td class="number">159</td><td>  <a href="http://www.allegro.cc/manual/install_int_ex" target="_blank"><span class="a">install_int_ex</span></a><span class="k2">(</span>increaseStamina, BPS_TO_TIMER<span class="k2">(</span><span class="n">1</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span> <span class="c">// increases the stamina bars for both players by 1 every second</span></td></tr><tr><td class="number">160</td><td>&#160;</td></tr><tr><td class="number">161</td><td>  <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></td></tr><tr><td class="number">162</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">163</td><td>    <a href="http://www.allegro.cc/manual/clear_to_color" target="_blank"><span class="a">clear_to_color</span></a><span class="k2">(</span>buffer, WHITE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">164</td><td>    <span class="c">/*// attack commands for player 1</span></td></tr><tr><td class="number">165</td><td><span class="c">    if(key[KEY_W] &amp;&amp; key[KEY_SPACE])</span></td></tr><tr><td class="number">166</td><td><span class="c">      attackHead(1);</span></td></tr><tr><td class="number">167</td><td><span class="c">    else if(key[KEY_SPACE])</span></td></tr><tr><td class="number">168</td><td><span class="c">      attackHand(1);</span></td></tr><tr><td class="number">169</td><td><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_SPACE])</span></td></tr><tr><td class="number">170</td><td><span class="c">      attackFoot(1);</span></td></tr><tr><td class="number">171</td><td><span class="c"></span></td></tr><tr><td class="number">172</td><td><span class="c">    // defend commands for player 1</span></td></tr><tr><td class="number">173</td><td><span class="c">    else if(key[KEY_W] &amp;&amp; key[KEY_LSHIFT])</span></td></tr><tr><td class="number">174</td><td><span class="c">      defendHead(1);</span></td></tr><tr><td class="number">175</td><td><span class="c">    else if(key[KEY_LSHIFT])</span></td></tr><tr><td class="number">176</td><td><span class="c">      defendHand(1);</span></td></tr><tr><td class="number">177</td><td><span class="c">    else if(key[KEY_S] &amp;&amp; key[KEY_LSHIFT])</span></td></tr><tr><td class="number">178</td><td><span class="c">      defendFoot(1);</span></td></tr><tr><td class="number">179</td><td><span class="c">    else*/</span></td></tr><tr><td class="number">180</td><td>    <span class="c">//{</span></td></tr><tr><td class="number">181</td><td>      frame1Function<span class="k2">(</span><span class="n">3</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">182</td><td>    </td></tr><tr><td class="number">183</td><td>      <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>fightStances<span class="k2">[</span>frame1<span class="k2">]</span>, buffer, <span class="n">0</span>, <span class="n">0</span>, p1, staticy, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>w, fightStances<span class="k2">[</span>frame1<span class="k2">]</span><span class="k3">-</span><span class="k3">&gt;</span>h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">184</td><td>    <span class="c">//}</span></td></tr><tr><td class="number">185</td><td>    stamina<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">186</td><td>    <a href="http://www.allegro.cc/manual/blit" target="_blank"><span class="a">blit</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/screen" target="_blank"><span class="a">screen</span></a>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, <span class="n">0</span>, buffer-&gt;w, buffer-&gt;h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">187</td><td>    <a href="http://www.allegro.cc/manual/clear_bitmap" target="_blank"><span class="a">clear_bitmap</span></a><span class="k2">(</span>buffer<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">188</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">189</td><td>  <a href="http://www.allegro.cc/manual/remove_int" target="_blank"><span class="a">remove_int</span></a><span class="k2">(</span>increaseStamina<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">190</td><td>&#160;</td></tr><tr><td class="number">191</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">192</td><td><span class="k2">}</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></td></tr><tr><td class="number">193</td><td>&#160;</td></tr><tr><td class="number">194</td><td><span class="k1">void</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">195</td><td><span class="k2">{</span></td></tr><tr><td class="number">196</td><td>  ticks<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">197</td><td>  </td></tr><tr><td class="number">198</td><td>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">199</td><td>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">200</td><td><span class="k2">}</span></td></tr><tr><td class="number">201</td><td>&#160;</td></tr><tr><td class="number">202</td><td><span class="k1">void</span> frame1Function<span class="k2">(</span><span class="k1">int</span> maxframes<span class="k2">)</span></td></tr><tr><td class="number">203</td><td><span class="k2">{</span></td></tr><tr><td class="number">204</td><td>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">=</span><span class="k3">=</span> <span class="k2">(</span><span class="n">100</span> % frameRate<span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">205</td><td>  <span class="k2">{</span>    </td></tr><tr><td class="number">206</td><td>    <span class="k1">if</span><span class="k2">(</span>frame1 <span class="k3">&gt;</span><span class="k3">=</span> maxframes<span class="k2">)</span></td></tr><tr><td class="number">207</td><td>      frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">208</td><td>    <span class="k1">else</span></td></tr><tr><td class="number">209</td><td>      frame1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">210</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">211</td><td><span class="k2">}</span></td></tr><tr><td class="number">212</td><td>&#160;</td></tr><tr><td class="number">213</td><td><span class="k1">void</span> stamina<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">214</td><td><span class="k2">{</span></td></tr><tr><td class="number">215</td><td>  <a href="http://www.allegro.cc/manual/textprintf_ex" target="_blank"><span class="a">textprintf_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <span class="n">5</span>, <span class="n">15</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 1"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">216</td><td>  <a href="http://www.allegro.cc/manual/textprintf_right_ex" target="_blank"><span class="a">textprintf_right_ex</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">5</span>, <span class="n">15</span>, BLACK, <span class="k3">-</span><span class="n">1</span>, <span class="s">"Player 2"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">217</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <span class="n">5</span>, <span class="n">5</span>, <span class="n">5</span> <span class="k3">+</span> stamina1, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">218</td><td>  <a href="http://www.allegro.cc/manual/rectfill" target="_blank"><span class="a">rectfill</span></a><span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span>, <span class="n">5</span>, <a href="http://www.allegro.cc/manual/SCREEN_W" target="_blank"><span class="a">SCREEN_W</span></a> <span class="k3">-</span> <span class="n">105</span> <span class="k3">+</span> stamina2, <span class="n">10</span>, GREEN<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">219</td><td><span class="k2">}</span></td></tr><tr><td class="number">220</td><td>&#160;</td></tr><tr><td class="number">221</td><td><span class="k1">void</span> increaseStamina<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">222</td><td><span class="k2">{</span></td></tr><tr><td class="number">223</td><td>  stamina1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">224</td><td>  <span class="k1">if</span><span class="k2">(</span>stamina1 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">225</td><td>    stamina1 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">226</td><td>  stamina2<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">227</td><td>  <span class="k1">if</span><span class="k2">(</span>stamina2 <span class="k3">&gt;</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">228</td><td>    stamina2 <span class="k3">=</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">229</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Tue, 05 Jun 2007 20:07:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>forgive me if im wrong i only had a quick skim over it... i cant see that you have declared width and height but i think you must have becaus eyou would be having erors...hmmm...well check it and im probably wrong.::)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (zavirax)</author>
		<pubDate>Thu, 07 Jun 2007 01:58:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Yes, everything that needs to be declared is declared, however, my stick figure guy now moves very much like a robot.  The frame that it displays appears to be random, and it only plays like 1 every second.  What&#39;s wrong?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Thu, 07 Jun 2007 02:10:09 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
if(ticks == (100 % frameRate))
</p></div></div><p>
This seems...odd to me.  Maybe I don&#39;t understand your logic, but what I get is ticks is being changed by a hardware interrupt, meaning it could go right past (100 % frameRate) before the if statement is called.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Onewing)</author>
		<pubDate>Thu, 07 Jun 2007 03:04:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>yeah, I changed it to this soon after posting:</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="k1">void</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">2</td><td><span class="k2">{</span></td></tr><tr><td class="number">3</td><td>  ticks<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">&gt;</span><span class="k3">=</span> <span class="n">100</span><span class="k2">)</span></td></tr><tr><td class="number">6</td><td>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td><span class="k2">}</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="k1">void</span> frame1Function<span class="k2">(</span><span class="k1">int</span> maxframes<span class="k2">)</span></td></tr><tr><td class="number">10</td><td><span class="k2">{</span></td></tr><tr><td class="number">11</td><td>  <span class="k1">float</span> comparisonVariable <span class="k3">=</span> frameRate <span class="k3">/</span> <span class="n">100</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  </td></tr><tr><td class="number">13</td><td>  <span class="k1">if</span><span class="k2">(</span>ticks <span class="k3">&gt;</span><span class="k3">=</span> comparisonVariable<span class="k2">)</span></td></tr><tr><td class="number">14</td><td>  <span class="k2">{</span>    </td></tr><tr><td class="number">15</td><td>    ticks <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>&#160;</td></tr><tr><td class="number">17</td><td>    <span class="k1">if</span><span class="k2">(</span>frame1 <span class="k3">&gt;</span><span class="k3">=</span> maxframes<span class="k2">)</span></td></tr><tr><td class="number">18</td><td>      frame1 <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>    <span class="k1">else</span></td></tr><tr><td class="number">20</td><td>      frame1<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">22</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Then after I did that, I noticed I had to switch the 100 and frameRate, and it works.  Thanks guys!  Now the next possible problem that could come up would be during my animations that run when buttons are pressed.  I&#39;ll let you know how that works out, but maybe in another topic.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (gamelord12)</author>
		<pubDate>Thu, 07 Jun 2007 04:40:14 +0000</pubDate>
	</item>
</rss>
